ARM: pm: convert cpu_suspend() to a normal function
[pandora-kernel.git] / arch / arm / mach-pxa / sleep.S
index 613ddfa..3a67887 100644 (file)
@@ -35,9 +35,11 @@ ENTRY(pxa3xx_cpu_suspend)
 #endif
        stmfd   sp!, {r2 - r12, lr}     @ save registers on stack
        mov     r1, r0
-       ldr     r3, =pxa_cpu_resume     @ resume function
+       adr     r3, BSYM(pxa3xx_finish_suspend)
        bl      cpu_suspend
+       b       pxa_cpu_resume
 
+pxa3xx_finish_suspend:
        mov     r0, #0x06               @ S2D3C4 mode
        mcr     p14, 0, r0, c7, c0, 0   @ enter sleep
 
@@ -60,9 +62,11 @@ ENTRY(pxa27x_cpu_suspend)
 #endif
        stmfd   sp!, {r2 - r12, lr}             @ save registers on stack
        mov     r2, r0                          @ save sleep mode
-       ldr     r3, =pxa_cpu_resume             @ resume function
+       adr     r3, BSYM(pxa27x_finish_suspend)
        bl      cpu_suspend
+       b       pxa_cpu_resume
 
+pxa27x_finish_suspend:
        @ Put the processor to sleep
        @ (also workaround for sighting 28071)
 
@@ -110,8 +114,11 @@ ENTRY(pxa27x_cpu_suspend)
 ENTRY(pxa25x_cpu_suspend)
        stmfd   sp!, {r2 - r12, lr}             @ save registers on stack
        mov     r2, r0                          @ save sleep mode
-       ldr     r3, =pxa_cpu_resume             @ resume function
+       adr     r3, BSYM(pxa25x_finish_suspend)
        bl      cpu_suspend
+       b       pxa_cpu_resume
+
+pxa25x_finish_suspend:
        @ prepare value for sleep mode
        mov     r1, r0                          @ sleep mode