aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-06-21 11:32:58 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-06-24 03:48:43 -0400
commit14cd8fd574bce1cfbe510ccb1f73c7c1024d770f (patch)
treed50ddf743969ac54898b3cc3053c52bfa95d1690 /arch
parente8856a8797e76e6883ae81f8f9ecbb231cc535df (diff)
ARM: pm: move cpu_init() call into core code
As we have core code dealing with CPU suspend/resume, we can re-initialize the CPUs exception banked registers via that code rather than having platforms deal with that level of detail. So, move the call to cpu_init() out of platform code into core code. Tested-by: Kevin Hilman <khilman@ti.com> Acked-by: Jean Pihet <j-pihet@ti.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/sleep.S1
-rw-r--r--arch/arm/mach-pxa/pm.c1
-rw-r--r--arch/arm/mach-sa1100/pm.c2
-rw-r--r--arch/arm/plat-samsung/pm.c4
4 files changed, 1 insertions, 7 deletions
diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S
index e0626779fe92..53922748d101 100644
--- a/arch/arm/kernel/sleep.S
+++ b/arch/arm/kernel/sleep.S
@@ -88,6 +88,7 @@ ENDPROC(cpu_resume_turn_mmu_on)
88cpu_resume_after_mmu: 88cpu_resume_after_mmu:
89 str r5, [r2, r4, lsl #2] @ restore old mapping 89 str r5, [r2, r4, lsl #2] @ restore old mapping
90 mcr p15, 0, r0, c1, c0, 0 @ turn on D-cache 90 mcr p15, 0, r0, c1, c0, 0 @ turn on D-cache
91 bl cpu_init @ restore the und/abt/irq banked regs
91 ldmfd sp!, {r4 - r11, pc} 92 ldmfd sp!, {r4 - r11, pc}
92ENDPROC(cpu_resume_after_mmu) 93ENDPROC(cpu_resume_after_mmu)
93 94
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c
index 51e1583265b2..37178a8559b1 100644
--- a/arch/arm/mach-pxa/pm.c
+++ b/arch/arm/mach-pxa/pm.c
@@ -42,7 +42,6 @@ int pxa_pm_enter(suspend_state_t state)
42 42
43 /* *** go zzz *** */ 43 /* *** go zzz *** */
44 pxa_cpu_pm_fns->enter(state); 44 pxa_cpu_pm_fns->enter(state);
45 cpu_init();
46 45
47 if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) { 46 if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) {
48 /* after sleeping, validate the checksum */ 47 /* after sleeping, validate the checksum */
diff --git a/arch/arm/mach-sa1100/pm.c b/arch/arm/mach-sa1100/pm.c
index c4661aab22fb..d35885ca97a1 100644
--- a/arch/arm/mach-sa1100/pm.c
+++ b/arch/arm/mach-sa1100/pm.c
@@ -77,8 +77,6 @@ static int sa11x0_pm_enter(suspend_state_t state)
77 /* go zzz */ 77 /* go zzz */
78 sa1100_cpu_suspend(PLAT_PHYS_OFFSET - PAGE_OFFSET); 78 sa1100_cpu_suspend(PLAT_PHYS_OFFSET - PAGE_OFFSET);
79 79
80 cpu_init();
81
82 /* 80 /*
83 * Ensure not to come back here if it wasn't intended 81 * Ensure not to come back here if it wasn't intended
84 */ 82 */
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c
index 5c0a440d6e16..3828191416b5 100644
--- a/arch/arm/plat-samsung/pm.c
+++ b/arch/arm/plat-samsung/pm.c
@@ -300,10 +300,6 @@ static int s3c_pm_enter(suspend_state_t state)
300 300
301 s3c_cpu_save(0, PLAT_PHYS_OFFSET - PAGE_OFFSET); 301 s3c_cpu_save(0, PLAT_PHYS_OFFSET - PAGE_OFFSET);
302 302
303 /* restore the cpu state using the kernel's cpu init code. */
304
305 cpu_init();
306
307 /* restore the system state */ 303 /* restore the system state */
308 304
309 s3c_pm_restore_core(); 305 s3c_pm_restore_core();