From ebee8541475f2f70d9035265f059570d2f701d5f Mon Sep 17 00:00:00 2001 From: Inderpal Singh Date: Thu, 22 Nov 2012 14:46:27 +0900 Subject: ARM: EXYNOS: Fix soft reboot hang after suspend/resume Upon wake-up, clear the sleep mode set in INFORM1 register. Signed-off-by: Inderpal Singh Tested-by: Abhilash Kesavan Signed-off-by: Kukjin Kim --- arch/arm/mach-exynos/pm.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/arm/mach-exynos/pm.c') diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c index c06c992943a..8dedeb23792 100644 --- a/arch/arm/mach-exynos/pm.c +++ b/arch/arm/mach-exynos/pm.c @@ -312,6 +312,10 @@ static void exynos_pm_resume(void) } early_wakeup: + + /* Clear SLEEP mode set in INFORM1 */ + __raw_writel(0x0, S5P_INFORM1); + return; } -- cgit v1.2.3-70-g09d2 From 573e5bbe653d01dc0f27e2d97754db9246b501c8 Mon Sep 17 00:00:00 2001 From: Abhilash Kesavan Date: Thu, 22 Nov 2012 14:46:40 +0900 Subject: ARM: EXYNOS: Add flush_cache_all in suspend finisher The core cpu_suspend code no longer calls flush_cache_all to optimize the cpu idle flow. Add a call for the same in the exynos specific suspend code. Signed-off-by: Abhilash Kesavan Signed-off-by: Kukjin Kim --- arch/arm/mach-exynos/pm.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'arch/arm/mach-exynos/pm.c') diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c index 8dedeb23792..8df6ec547f7 100644 --- a/arch/arm/mach-exynos/pm.c +++ b/arch/arm/mach-exynos/pm.c @@ -81,6 +81,9 @@ static int exynos_cpu_suspend(unsigned long arg) outer_flush_all(); #endif + if (soc_is_exynos5250()) + flush_cache_all(); + /* issue the standby signal into the pm unit. */ cpu_do_idle(); -- cgit v1.2.3-70-g09d2