Skip to content

Commit

Permalink
ARM: pm: reallocate registers to avoid r2, r3
Browse files Browse the repository at this point in the history
Avoid using r2 and r3 in the suspend code, allowing these to be
passed further into the function as arguments.

Acked-by: Frank Hofmann <frank.hofmann@tomtom.com>
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>
  • Loading branch information
Russell King committed Jun 24, 2011
1 parent 5fa94c8 commit 8111eaa
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions arch/arm/kernel/sleep.S
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,26 @@ ENTRY(cpu_suspend)
mov r9, lr
#ifdef MULTI_CPU
ldr r10, =processor
ldr r0, [r10, #CPU_SLEEP_SIZE] @ size of CPU sleep state
ldr r5, [r10, #CPU_SLEEP_SIZE] @ size of CPU sleep state
ldr ip, [r10, #CPU_DO_RESUME] @ virtual resume function
#else
ldr r0, =cpu_suspend_size
ldr r5, =cpu_suspend_size
ldr ip, =cpu_do_resume
#endif
mov r2, sp @ current virtual SP
sub sp, sp, r0 @ allocate CPU state on stack
mov r6, sp @ current virtual SP
sub sp, sp, r5 @ allocate CPU state on stack
mov r0, sp @ save pointer
add ip, ip, r1 @ convert resume fn to phys
stmfd sp!, {r1, r2, ip} @ save v:p, virt SP, phys resume fn
ldr r3, =sleep_save_sp
add r2, sp, r1 @ convert SP to phys
stmfd sp!, {r1, r6, ip} @ save v:p, virt SP, phys resume fn
ldr r5, =sleep_save_sp
add r6, sp, r1 @ convert SP to phys
#ifdef CONFIG_SMP
ALT_SMP(mrc p15, 0, lr, c0, c0, 5)
ALT_UP(mov lr, #0)
and lr, lr, #15
str r2, [r3, lr, lsl #2] @ save phys SP
str r6, [r5, lr, lsl #2] @ save phys SP
#else
str r2, [r3] @ save phys SP
str r6, [r5] @ save phys SP
#endif
#ifdef MULTI_CPU
mov lr, pc
Expand Down

0 comments on commit 8111eaa

Please sign in to comment.