diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-21 11:32:58 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-24 03:48:43 -0400 |
commit | 14cd8fd574bce1cfbe510ccb1f73c7c1024d770f (patch) | |
tree | d50ddf743969ac54898b3cc3053c52bfa95d1690 /arch | |
parent | e8856a8797e76e6883ae81f8f9ecbb231cc535df (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.S | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/pm.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-samsung/pm.c | 4 |
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) | |||
88 | cpu_resume_after_mmu: | 88 | cpu_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} |
92 | ENDPROC(cpu_resume_after_mmu) | 93 | ENDPROC(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(); |