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>
cpu_resume_after_mmu:
str r5, [r2, r4, lsl #2] @ restore old mapping
mcr p15, 0, r0, c1, c0, 0 @ turn on D-cache
cpu_resume_after_mmu:
str r5, [r2, r4, lsl #2] @ restore old mapping
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}
ENDPROC(cpu_resume_after_mmu)
ldmfd sp!, {r4 - r11, pc}
ENDPROC(cpu_resume_after_mmu)
/* *** go zzz *** */
pxa_cpu_pm_fns->enter(state);
/* *** go zzz *** */
pxa_cpu_pm_fns->enter(state);
if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) {
/* after sleeping, validate the checksum */
if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) {
/* after sleeping, validate the checksum */
/* go zzz */
sa1100_cpu_suspend(PLAT_PHYS_OFFSET - PAGE_OFFSET);
/* go zzz */
sa1100_cpu_suspend(PLAT_PHYS_OFFSET - PAGE_OFFSET);
/*
* Ensure not to come back here if it wasn't intended
*/
/*
* Ensure not to come back here if it wasn't intended
*/
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 */
s3c_pm_restore_core();
/* restore the system state */
s3c_pm_restore_core();