mirror of https://gitee.com/openkylin/linux.git
ARM: 7818/1: feroceon: Add suspend/resume operation
Add support for suspend/resume operations. The implemented procedures are identical to the ones for ARM926. Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
da0ec6f7c1
commit
19a0519d36
|
@ -2240,7 +2240,7 @@ source "kernel/power/Kconfig"
|
|||
|
||||
config ARCH_SUSPEND_POSSIBLE
|
||||
depends on !ARCH_S5PC100
|
||||
depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
|
||||
depends on CPU_ARM920T || CPU_ARM926T || CPU_FEROCEON || CPU_SA1100 || \
|
||||
CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
|
||||
def_bool y
|
||||
|
||||
|
|
|
@ -514,6 +514,32 @@ ENTRY(cpu_feroceon_set_pte_ext)
|
|||
#endif
|
||||
mov pc, lr
|
||||
|
||||
/* Suspend/resume support: taken from arch/arm/mm/proc-arm926.S */
|
||||
.globl cpu_feroceon_suspend_size
|
||||
.equ cpu_feroceon_suspend_size, 4 * 3
|
||||
#ifdef CONFIG_ARM_CPU_SUSPEND
|
||||
ENTRY(cpu_feroceon_do_suspend)
|
||||
stmfd sp!, {r4 - r6, lr}
|
||||
mrc p15, 0, r4, c13, c0, 0 @ PID
|
||||
mrc p15, 0, r5, c3, c0, 0 @ Domain ID
|
||||
mrc p15, 0, r6, c1, c0, 0 @ Control register
|
||||
stmia r0, {r4 - r6}
|
||||
ldmfd sp!, {r4 - r6, pc}
|
||||
ENDPROC(cpu_feroceon_do_suspend)
|
||||
|
||||
ENTRY(cpu_feroceon_do_resume)
|
||||
mov ip, #0
|
||||
mcr p15, 0, ip, c8, c7, 0 @ invalidate I+D TLBs
|
||||
mcr p15, 0, ip, c7, c7, 0 @ invalidate I+D caches
|
||||
ldmia r0, {r4 - r6}
|
||||
mcr p15, 0, r4, c13, c0, 0 @ PID
|
||||
mcr p15, 0, r5, c3, c0, 0 @ Domain ID
|
||||
mcr p15, 0, r1, c2, c0, 0 @ TTB address
|
||||
mov r0, r6 @ control register
|
||||
b cpu_resume_mmu
|
||||
ENDPROC(cpu_feroceon_do_resume)
|
||||
#endif
|
||||
|
||||
.type __feroceon_setup, #function
|
||||
__feroceon_setup:
|
||||
mov r0, #0
|
||||
|
|
Loading…
Reference in New Issue