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); |