summaryrefslogtreecommitdiff
path: root/plat/arm/common
diff options
context:
space:
mode:
authordanh-arm <dan.handley@arm.com>2016-12-20 12:26:23 +0000
committerGitHub <noreply@github.com>2016-12-20 12:26:23 +0000
commit9acdafbccf730179406ce7693772d7f7dcc4ae3c (patch)
tree3f63845f5abefdcd6a6cc977b1c8acd437dd6832 /plat/arm/common
parent9e75fddc3a89c1c2fbaf38213e627668271d6af5 (diff)
parent74a9578c209fc96eaed4ffdd26fd0e5fe94e21a9 (diff)
Merge pull request #793 from jeenu-arm/gic-changes
GIC driver changes for extended power management
Diffstat (limited to 'plat/arm/common')
-rw-r--r--plat/arm/common/arm_gicv2.c14
-rw-r--r--plat/arm/common/arm_gicv3.c15
-rw-r--r--plat/arm/common/arm_gicv3_legacy.c14
3 files changed, 43 insertions, 0 deletions
diff --git a/plat/arm/common/arm_gicv2.c b/plat/arm/common/arm_gicv2.c
index 2636d1c9..1017c9e0 100644
--- a/plat/arm/common/arm_gicv2.c
+++ b/plat/arm/common/arm_gicv2.c
@@ -97,3 +97,17 @@ void plat_arm_gic_pcpu_init(void)
{
gicv2_pcpu_distif_init();
}
+
+/******************************************************************************
+ * Stubs for Redistributor power management. Although GICv2 doesn't have
+ * Redistributor interface, these are provided for the sake of uniform GIC API
+ *****************************************************************************/
+void plat_arm_gic_redistif_on(void)
+{
+ return;
+}
+
+void plat_arm_gic_redistif_off(void)
+{
+ return;
+}
diff --git a/plat/arm/common/arm_gicv3.c b/plat/arm/common/arm_gicv3.c
index ac309f2b..6d68bfbe 100644
--- a/plat/arm/common/arm_gicv3.c
+++ b/plat/arm/common/arm_gicv3.c
@@ -43,6 +43,8 @@
#pragma weak plat_arm_gic_cpuif_enable
#pragma weak plat_arm_gic_cpuif_disable
#pragma weak plat_arm_gic_pcpu_init
+#pragma weak plat_arm_gic_redistif_on
+#pragma weak plat_arm_gic_redistif_off
/* The GICv3 driver only needs to be initialized in EL3 */
static uintptr_t rdistif_base_addrs[PLATFORM_CORE_COUNT];
@@ -115,3 +117,16 @@ void plat_arm_gic_pcpu_init(void)
{
gicv3_rdistif_init(plat_my_core_pos());
}
+
+/******************************************************************************
+ * ARM common helpers to power GIC redistributor interface
+ *****************************************************************************/
+void plat_arm_gic_redistif_on(void)
+{
+ gicv3_rdistif_on(plat_my_core_pos());
+}
+
+void plat_arm_gic_redistif_off(void)
+{
+ gicv3_rdistif_off(plat_my_core_pos());
+}
diff --git a/plat/arm/common/arm_gicv3_legacy.c b/plat/arm/common/arm_gicv3_legacy.c
index 8396b600..cbf11fb5 100644
--- a/plat/arm/common/arm_gicv3_legacy.c
+++ b/plat/arm/common/arm_gicv3_legacy.c
@@ -94,3 +94,17 @@ void plat_arm_gic_pcpu_init(void)
{
arm_gic_pcpu_distif_setup();
}
+
+/******************************************************************************
+ * Stubs for Redistributor power management. Although legacy configuration isn't
+ * supported, these are provided for the sake of uniform GIC API
+ *****************************************************************************/
+void plat_arm_gic_redistif_on(void)
+{
+ return;
+}
+
+void plat_arm_gic_redistif_off(void)
+{
+ return;
+}