gicv3: Fix support for systems without secure interrupts

Accessing the interrupt_props array only happens inside a loop over
interrupt_props_num, so the GICv3 driver can cope with no secure
interrupts. This allows us to relax the asserts that insists on
a non-NULL interrupt_props pointer and at least one secure interrupt.
This enables GICv3 platforms which have no need for a secure interrupt.

This only covers the non-deprecated code paths.

Change-Id: I49db291906512f56af065772f69acb281dfbdcfb
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
diff --git a/drivers/arm/gic/v3/gicv3_helpers.c b/drivers/arm/gic/v3/gicv3_helpers.c
index 69c6951..020ec1b 100644
--- a/drivers/arm/gic/v3/gicv3_helpers.c
+++ b/drivers/arm/gic/v3/gicv3_helpers.c
@@ -433,8 +433,7 @@
 	unsigned int ctlr_enable = 0;
 
 	/* Make sure there's a valid property array */
-	assert(interrupt_props != NULL);
-	assert(interrupt_props_num > 0);
+	assert(interrupt_props_num > 0 ? interrupt_props != NULL : 1);
 
 	for (i = 0; i < interrupt_props_num; i++) {
 		current_prop = &interrupt_props[i];
@@ -556,8 +555,7 @@
 	unsigned int ctlr_enable = 0;
 
 	/* Make sure there's a valid property array */
-	assert(interrupt_props != NULL);
-	assert(interrupt_props_num > 0);
+	assert(interrupt_props_num > 0 ? interrupt_props != NULL : 1);
 
 	for (i = 0; i < interrupt_props_num; i++) {
 		current_prop = &interrupt_props[i];
diff --git a/drivers/arm/gic/v3/gicv3_main.c b/drivers/arm/gic/v3/gicv3_main.c
index d8fc7d6..82f43d0 100644
--- a/drivers/arm/gic/v3/gicv3_main.c
+++ b/drivers/arm/gic/v3/gicv3_main.c
@@ -103,8 +103,8 @@
 		WARN("Please migrate to using interrupt_prop_t arrays\n");
 	}
 #else
-	assert(plat_driver_data->interrupt_props != NULL);
-	assert(plat_driver_data->interrupt_props_num > 0);
+	assert(plat_driver_data->interrupt_props_num > 0 ?
+	       plat_driver_data->interrupt_props != NULL : 1);
 #endif
 
 	/* Check for system register support */