summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJonghwa Lee <jonghwa3.lee@samsung.com>2014-02-03 17:37:04 +0900
committerChanho Park <chanho61.park@samsung.com>2014-11-18 11:46:56 +0900
commit3d3d9ab72c5d7f606ae89446cf4ff5513a87809a (patch)
tree529893cbac9cd274100e46f8fed76774701f6db0 /arch
parentd620e41deb5d99a214748d76b9f8477f02372299 (diff)
downloadlinux-3.10-3d3d9ab72c5d7f606ae89446cf4ff5513a87809a.tar.gz
linux-3.10-3d3d9ab72c5d7f606ae89446cf4ff5513a87809a.tar.bz2
linux-3.10-3d3d9ab72c5d7f606ae89446cf4ff5513a87809a.zip
pm: exynos: Skip re-enabling L2 cache for early waking-up.
If L2 cache is powered on, accessing L2 cache's control register is forbidden. Ohterwise system will hang up. So, when system fails to go to sleep, we have to avoid reset L2 cache because it still be powered on. Change-Id: Ie0271619116012627477e332b0cd5e60a27882ff Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-exynos/pm.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
index d5bac0da160..e5421faff59 100644
--- a/arch/arm/mach-exynos/pm.c
+++ b/arch/arm/mach-exynos/pm.c
@@ -273,10 +273,7 @@ static int exynos_pm_suspend(void)
static void exynos_pm_resume(void)
{
unsigned long tmp;
-#ifdef CONFIG_CACHE_L2X0
- if (call_firmware_op(l2x0_resume) < 0)
- outer_resume();
-#endif
+
/*
* If PMU failed while entering sleep mode, WFI will be
* ignored by PMU and then exiting cpu_do_idle().
@@ -292,6 +289,7 @@ static void exynos_pm_resume(void)
/* No need to perform below restore code */
goto early_wakeup;
}
+
if (!soc_is_exynos5250()
&& call_firmware_op(c15resume, save_arm_register) == -ENOSYS)
{
@@ -330,6 +328,12 @@ static void exynos_pm_resume(void)
#ifdef CONFIG_SMP
scu_enable(S5P_VA_SCU);
#endif
+
+#ifdef CONFIG_CACHE_L2X0
+ if (call_firmware_op(l2x0_resume) < 0)
+ outer_resume();
+#endif
+
}
early_wakeup: