summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/arm/gic/v2/gicv2_main.c27
-rw-r--r--drivers/arm/gic/v3/gicv3_main.c28
-rw-r--r--include/drivers/arm/gicv2.h4
-rw-r--r--include/drivers/arm/gicv3.h8
4 files changed, 61 insertions, 6 deletions
diff --git a/drivers/arm/gic/v2/gicv2_main.c b/drivers/arm/gic/v2/gicv2_main.c
index c65f972d..7e2c7a7b 100644
--- a/drivers/arm/gic/v2/gicv2_main.c
+++ b/drivers/arm/gic/v2/gicv2_main.c
@@ -85,10 +85,17 @@ void gicv2_pcpu_distif_init(void)
driver_data->interrupt_props_num);
#if !ERROR_DEPRECATED
} else {
+ /*
+ * Suppress deprecated declaration warnings in compatibility
+ * function
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
assert(driver_data->g0_interrupt_array);
gicv2_secure_ppi_sgi_setup(driver_data->gicd_base,
driver_data->g0_interrupt_num,
driver_data->g0_interrupt_array);
+#pragma GCC diagnostic pop
}
#endif
@@ -128,12 +135,20 @@ void gicv2_distif_init(void)
driver_data->interrupt_props_num);
#if !ERROR_DEPRECATED
} else {
+ /*
+ * Suppress deprecated declaration warnings in compatibility
+ * function
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
assert(driver_data->g0_interrupt_array);
/* Configure the G0 SPIs */
gicv2_secure_spis_configure(driver_data->gicd_base,
driver_data->g0_interrupt_num,
driver_data->g0_interrupt_array);
+#pragma GCC diagnostic pop
}
#endif
@@ -156,6 +171,13 @@ void gicv2_driver_init(const gicv2_driver_data_t *plat_driver_data)
/* Interrupt properties array size must be 0 */
assert(plat_driver_data->interrupt_props_num == 0);
+ /*
+ * Suppress deprecated declaration warnings in compatibility
+ * function
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
/* The platform should provide a list of secure interrupts */
assert(plat_driver_data->g0_interrupt_array);
@@ -166,6 +188,11 @@ void gicv2_driver_init(const gicv2_driver_data_t *plat_driver_data)
assert(plat_driver_data->g0_interrupt_array ?
plat_driver_data->g0_interrupt_num :
plat_driver_data->g0_interrupt_num == 0);
+#pragma GCC diagnostic pop
+
+ WARN("Using deprecated integer interrupt array in "
+ "gicv2_driver_data_t\n");
+ WARN("Please migrate to using an interrupt_prop_t array\n");
}
#else
assert(plat_driver_data->interrupt_props != NULL);
diff --git a/drivers/arm/gic/v3/gicv3_main.c b/drivers/arm/gic/v3/gicv3_main.c
index 45a2e5bc..f4a3ef81 100644
--- a/drivers/arm/gic/v3/gicv3_main.c
+++ b/drivers/arm/gic/v3/gicv3_main.c
@@ -73,6 +73,13 @@ void gicv3_driver_init(const gicv3_driver_data_t *plat_driver_data)
assert(plat_driver_data->interrupt_props_num == 0);
/*
+ * Suppress deprecated declaration warnings in compatibility
+ * function
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
+ /*
* The platform should provide a list of at least one type of
* interrupt.
*/
@@ -89,6 +96,11 @@ void gicv3_driver_init(const gicv3_driver_data_t *plat_driver_data)
assert(plat_driver_data->g1s_interrupt_array ?
plat_driver_data->g1s_interrupt_num :
plat_driver_data->g1s_interrupt_num == 0);
+#pragma GCC diagnostic pop
+
+ WARN("Using deprecated integer interrupt arrays in "
+ "gicv3_driver_data_t\n");
+ WARN("Please migrate to using interrupt_prop_t arrays\n");
}
#else
assert(plat_driver_data->interrupt_props != NULL);
@@ -189,6 +201,13 @@ void gicv3_distif_init(void)
gicv3_driver_data->interrupt_props_num);
#if !ERROR_DEPRECATED
} else {
+ /*
+ * Suppress deprecated declaration warnings in compatibility
+ * function
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
assert(gicv3_driver_data->g1s_interrupt_array ||
gicv3_driver_data->g0_interrupt_array);
@@ -209,6 +228,7 @@ void gicv3_distif_init(void)
INTR_GROUP0);
bitmap |= CTLR_ENABLE_G0_BIT;
}
+#pragma GCC diagnostic pop
}
#endif
@@ -253,6 +273,13 @@ void gicv3_rdistif_init(unsigned int proc_num)
gicv3_driver_data->interrupt_props_num);
#if !ERROR_DEPRECATED
} else {
+ /*
+ * Suppress deprecated declaration warnings in compatibility
+ * function
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
assert(gicv3_driver_data->g1s_interrupt_array ||
gicv3_driver_data->g0_interrupt_array);
@@ -273,6 +300,7 @@ void gicv3_rdistif_init(unsigned int proc_num)
INTR_GROUP0);
bitmap |= CTLR_ENABLE_G0_BIT;
}
+#pragma GCC diagnostic pop
}
#endif
diff --git a/include/drivers/arm/gicv2.h b/include/drivers/arm/gicv2.h
index 6e8322e1..39c73027 100644
--- a/include/drivers/arm/gicv2.h
+++ b/include/drivers/arm/gicv2.h
@@ -155,8 +155,8 @@ typedef struct gicv2_driver_data {
uintptr_t gicd_base;
uintptr_t gicc_base;
#if !ERROR_DEPRECATED
- unsigned int g0_interrupt_num;
- const unsigned int *g0_interrupt_array;
+ unsigned int g0_interrupt_num __deprecated;
+ const unsigned int *g0_interrupt_array __deprecated;
#endif
unsigned int *target_masks;
unsigned int target_masks_num;
diff --git a/include/drivers/arm/gicv3.h b/include/drivers/arm/gicv3.h
index 5f265c6e..37c92e4f 100644
--- a/include/drivers/arm/gicv3.h
+++ b/include/drivers/arm/gicv3.h
@@ -310,10 +310,10 @@ typedef struct gicv3_driver_data {
uintptr_t gicd_base;
uintptr_t gicr_base;
#if !ERROR_DEPRECATED
- unsigned int g0_interrupt_num;
- unsigned int g1s_interrupt_num;
- const unsigned int *g0_interrupt_array;
- const unsigned int *g1s_interrupt_array;
+ unsigned int g0_interrupt_num __deprecated;
+ unsigned int g1s_interrupt_num __deprecated;
+ const unsigned int *g0_interrupt_array __deprecated;
+ const unsigned int *g1s_interrupt_array __deprecated;
#endif
const interrupt_prop_t *interrupt_props;
unsigned int interrupt_props_num;