diff mbox

[RFC,v2,2/7] ARM: shmobile: use signals from SYSC to wake up from Suspend-to-RAM

Message ID 5428E8AA.1060501@renesas.com (mailing list archive)
State RFC
Headers show

Commit Message

Khiem Nguyen Sept. 29, 2014, 5:05 a.m. UTC
Disable GIC CPU IF so system will only resume by permitted wakeup
signals via System Controller IP.
It improves low-power implementation and prepares for cluster powerdown
in future.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Khiem Nguyen <khiem.nguyen.xt@renesas.com>
---
 arch/arm/mach-shmobile/platsmp-apmu.c |    8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox

Patch

diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c
index 21f8ddd..f6e4f0b 100644
--- a/arch/arm/mach-shmobile/platsmp-apmu.c
+++ b/arch/arm/mach-shmobile/platsmp-apmu.c
@@ -13,6 +13,7 @@ 
 #include <linux/init.h>
 #include <linux/io.h>
 #include <linux/ioport.h>
+#include <linux/irqchip/arm-gic.h>
 #include <linux/of_address.h>
 #include <linux/smp.h>
 #include <linux/suspend.h>
@@ -214,6 +215,13 @@  static int shmobile_smp_apmu_do_suspend(unsigned long cpu)
 #if defined(CONFIG_SUSPEND)
 static int shmobile_smp_apmu_enter_suspend(suspend_state_t state)
 {
+	/*
+	 * Disable the CPU interface when a CPU core is entering L2
+	 * shutdown mode, that will help us to prevent spurious CPU
+	 * wakeup to happen upon WFI execution.
+	 */
+	gic_cpu_if_down();
+
 	shmobile_smp_hook(smp_processor_id(), virt_to_phys(cpu_resume), 0);
 	cpu_suspend(smp_processor_id(), shmobile_smp_apmu_do_suspend);
 	cpu_leave_lowpower();