diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-22 07:44:32 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-24 03:48:45 -0400 |
commit | 857c1b81f8dd2e2a97d859d7e53dd955e2ab55af (patch) | |
tree | 4d13af4e3c0e6abafcb1e5abd0cc9000292f7ab6 /arch | |
parent | a9503d2185bbc28e498c435a07f24986c48b5cbe (diff) |
ARM: pm: omap34xx: no need to save all registers in sleep34xx.S
The ABI allows called functions to corrupt r0-r3 and ip (r12). So
its pointless saving these registers in the suspend code - the
calling function will expect them to be corrupted and so won't rely
on their contents after resume.
Reviewed-by: Kevin Hilman <khilman@ti.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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/sleep34xx.S | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/sleep34xx.S b/arch/arm/mach-omap2/sleep34xx.S index 63f10669571a..9551c7dc71ef 100644 --- a/arch/arm/mach-omap2/sleep34xx.S +++ b/arch/arm/mach-omap2/sleep34xx.S | |||
@@ -133,7 +133,7 @@ ENDPROC(enable_omap3630_toggle_l2_on_restore) | |||
133 | /* Function to call rom code to save secure ram context */ | 133 | /* Function to call rom code to save secure ram context */ |
134 | .align 3 | 134 | .align 3 |
135 | ENTRY(save_secure_ram_context) | 135 | ENTRY(save_secure_ram_context) |
136 | stmfd sp!, {r1-r12, lr} @ save registers on stack | 136 | stmfd sp!, {r4 - r11, lr} @ save registers on stack |
137 | adr r3, api_params @ r3 points to parameters | 137 | adr r3, api_params @ r3 points to parameters |
138 | str r0, [r3,#0x4] @ r0 has sdram address | 138 | str r0, [r3,#0x4] @ r0 has sdram address |
139 | ldr r12, high_mask | 139 | ldr r12, high_mask |
@@ -152,7 +152,7 @@ ENTRY(save_secure_ram_context) | |||
152 | nop | 152 | nop |
153 | nop | 153 | nop |
154 | nop | 154 | nop |
155 | ldmfd sp!, {r1-r12, pc} | 155 | ldmfd sp!, {r4 - r11, pc} |
156 | .align | 156 | .align |
157 | sram_phy_addr_mask: | 157 | sram_phy_addr_mask: |
158 | .word SRAM_BASE_P | 158 | .word SRAM_BASE_P |
@@ -187,7 +187,7 @@ ENTRY(save_secure_ram_context_sz) | |||
187 | */ | 187 | */ |
188 | .align 3 | 188 | .align 3 |
189 | ENTRY(omap34xx_cpu_suspend) | 189 | ENTRY(omap34xx_cpu_suspend) |
190 | stmfd sp!, {r0-r12, lr} @ save registers on stack | 190 | stmfd sp!, {r4 - r11, lr} @ save registers on stack |
191 | 191 | ||
192 | /* | 192 | /* |
193 | * r0 contains CPU context save/restore pointer in sdram | 193 | * r0 contains CPU context save/restore pointer in sdram |
@@ -329,7 +329,7 @@ omap3_do_wfi: | |||
329 | * == Exit point from non-OFF modes == | 329 | * == Exit point from non-OFF modes == |
330 | * =================================== | 330 | * =================================== |
331 | */ | 331 | */ |
332 | ldmfd sp!, {r0-r12, pc} @ restore regs and return | 332 | ldmfd sp!, {r4 - r11, pc} @ restore regs and return |
333 | 333 | ||
334 | 334 | ||
335 | /* | 335 | /* |
@@ -572,7 +572,7 @@ usettbr0: | |||
572 | * ============================== | 572 | * ============================== |
573 | */ | 573 | */ |
574 | restoremmu_on: | 574 | restoremmu_on: |
575 | ldmfd sp!, {r0-r12, pc} @ restore regs and return | 575 | ldmfd sp!, {r4 - r11, pc} @ restore regs and return |
576 | 576 | ||
577 | 577 | ||
578 | /* | 578 | /* |