diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa27x.c')
-rw-r--r-- | arch/arm/mach-pxa/pxa27x.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 2fecbec58d88..824379d43758 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -284,6 +284,11 @@ void pxa27x_cpu_pm_restore(unsigned long *sleep_save) | |||
284 | void pxa27x_cpu_pm_enter(suspend_state_t state) | 284 | void pxa27x_cpu_pm_enter(suspend_state_t state) |
285 | { | 285 | { |
286 | extern void pxa_cpu_standby(void); | 286 | extern void pxa_cpu_standby(void); |
287 | #ifndef CONFIG_IWMMXT | ||
288 | u64 acc0; | ||
289 | |||
290 | asm volatile("mra %Q0, %R0, acc0" : "=r" (acc0)); | ||
291 | #endif | ||
287 | 292 | ||
288 | /* ensure voltage-change sequencer not initiated, which hangs */ | 293 | /* ensure voltage-change sequencer not initiated, which hangs */ |
289 | PCFR &= ~PCFR_FVC; | 294 | PCFR &= ~PCFR_FVC; |
@@ -299,7 +304,11 @@ void pxa27x_cpu_pm_enter(suspend_state_t state) | |||
299 | pxa_cpu_standby(); | 304 | pxa_cpu_standby(); |
300 | break; | 305 | break; |
301 | case PM_SUSPEND_MEM: | 306 | case PM_SUSPEND_MEM: |
302 | pxa27x_cpu_suspend(pwrmode, PLAT_PHYS_OFFSET - PAGE_OFFSET); | 307 | cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, pwrmode, |
308 | pxa27x_finish_suspend); | ||
309 | #ifndef CONFIG_IWMMXT | ||
310 | asm volatile("mar acc0, %Q0, %R0" : "=r" (acc0)); | ||
311 | #endif | ||
303 | break; | 312 | break; |
304 | } | 313 | } |
305 | } | 314 | } |