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>
This commit is contained in:
parent
e8856a8797
commit
14cd8fd574
|
@ -88,6 +88,7 @@ ENDPROC(cpu_resume_turn_mmu_on)
|
||||||
cpu_resume_after_mmu:
|
cpu_resume_after_mmu:
|
||||||
str r5, [r2, r4, lsl #2] @ restore old mapping
|
str r5, [r2, r4, lsl #2] @ restore old mapping
|
||||||
mcr p15, 0, r0, c1, c0, 0 @ turn on D-cache
|
mcr p15, 0, r0, c1, c0, 0 @ turn on D-cache
|
||||||
|
bl cpu_init @ restore the und/abt/irq banked regs
|
||||||
ldmfd sp!, {r4 - r11, pc}
|
ldmfd sp!, {r4 - r11, pc}
|
||||||
ENDPROC(cpu_resume_after_mmu)
|
ENDPROC(cpu_resume_after_mmu)
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,6 @@ int pxa_pm_enter(suspend_state_t state)
|
||||||
|
|
||||||
/* *** go zzz *** */
|
/* *** go zzz *** */
|
||||||
pxa_cpu_pm_fns->enter(state);
|
pxa_cpu_pm_fns->enter(state);
|
||||||
cpu_init();
|
|
||||||
|
|
||||||
if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) {
|
if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) {
|
||||||
/* after sleeping, validate the checksum */
|
/* after sleeping, validate the checksum */
|
||||||
|
|
|
@ -77,8 +77,6 @@ static int sa11x0_pm_enter(suspend_state_t state)
|
||||||
/* go zzz */
|
/* go zzz */
|
||||||
sa1100_cpu_suspend(PLAT_PHYS_OFFSET - PAGE_OFFSET);
|
sa1100_cpu_suspend(PLAT_PHYS_OFFSET - PAGE_OFFSET);
|
||||||
|
|
||||||
cpu_init();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ensure not to come back here if it wasn't intended
|
* Ensure not to come back here if it wasn't intended
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -300,10 +300,6 @@ static int s3c_pm_enter(suspend_state_t state)
|
||||||
|
|
||||||
s3c_cpu_save(0, PLAT_PHYS_OFFSET - PAGE_OFFSET);
|
s3c_cpu_save(0, PLAT_PHYS_OFFSET - PAGE_OFFSET);
|
||||||
|
|
||||||
/* restore the cpu state using the kernel's cpu init code. */
|
|
||||||
|
|
||||||
cpu_init();
|
|
||||||
|
|
||||||
/* restore the system state */
|
/* restore the system state */
|
||||||
|
|
||||||
s3c_pm_restore_core();
|
s3c_pm_restore_core();
|
||||||
|
|
Reference in New Issue