diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa27x.c')
| -rw-r--r-- | arch/arm/mach-pxa/pxa27x.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 893964fb9659..9a791b07118d 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
| @@ -126,6 +126,7 @@ int pxa_cpu_pm_prepare(suspend_state_t state) | |||
| 126 | { | 126 | { |
| 127 | switch (state) { | 127 | switch (state) { |
| 128 | case PM_SUSPEND_MEM: | 128 | case PM_SUSPEND_MEM: |
| 129 | case PM_SUSPEND_STANDBY: | ||
| 129 | return 0; | 130 | return 0; |
| 130 | default: | 131 | default: |
| 131 | return -EINVAL; | 132 | return -EINVAL; |
| @@ -138,7 +139,10 @@ void pxa_cpu_pm_enter(suspend_state_t state) | |||
| 138 | extern void pxa_cpu_suspend(unsigned int); | 139 | extern void pxa_cpu_suspend(unsigned int); |
| 139 | extern void pxa_cpu_resume(void); | 140 | extern void pxa_cpu_resume(void); |
| 140 | 141 | ||
| 141 | CKEN = CKEN22_MEMC | CKEN9_OSTIMER; | 142 | if (state == PM_SUSPEND_STANDBY) |
| 143 | CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN16_LCD |CKEN0_PWM0; | ||
| 144 | else | ||
| 145 | CKEN = CKEN22_MEMC | CKEN9_OSTIMER; | ||
| 142 | 146 | ||
| 143 | /* ensure voltage-change sequencer not initiated, which hangs */ | 147 | /* ensure voltage-change sequencer not initiated, which hangs */ |
| 144 | PCFR &= ~PCFR_FVC; | 148 | PCFR &= ~PCFR_FVC; |
| @@ -147,6 +151,9 @@ void pxa_cpu_pm_enter(suspend_state_t state) | |||
| 147 | PEDR = 0xDF12FE1B; | 151 | PEDR = 0xDF12FE1B; |
| 148 | 152 | ||
| 149 | switch (state) { | 153 | switch (state) { |
| 154 | case PM_SUSPEND_STANDBY: | ||
| 155 | pxa_cpu_standby(); | ||
| 156 | break; | ||
| 150 | case PM_SUSPEND_MEM: | 157 | case PM_SUSPEND_MEM: |
| 151 | /* set resume return address */ | 158 | /* set resume return address */ |
| 152 | PSPR = virt_to_phys(pxa_cpu_resume); | 159 | PSPR = virt_to_phys(pxa_cpu_resume); |
