diff options
Diffstat (limited to 'arch/arm/mach-pxa/mfp-pxa2xx.c')
-rw-r--r-- | arch/arm/mach-pxa/mfp-pxa2xx.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c index cf6b720c055f..c98b5a8c3b0f 100644 --- a/arch/arm/mach-pxa/mfp-pxa2xx.c +++ b/arch/arm/mach-pxa/mfp-pxa2xx.c | |||
@@ -328,6 +328,17 @@ static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state) | |||
328 | { | 328 | { |
329 | int i; | 329 | int i; |
330 | 330 | ||
331 | /* set corresponding PGSR bit of those marked MFP_LPM_KEEP_OUTPUT */ | ||
332 | for (i = 0; i < pxa_last_gpio; i++) { | ||
333 | if ((gpio_desc[i].config & MFP_LPM_KEEP_OUTPUT) && | ||
334 | (GPDR(i) & GPIO_bit(i))) { | ||
335 | if (GPLR(i) & GPIO_bit(i)) | ||
336 | PGSR(i) |= GPIO_bit(i); | ||
337 | else | ||
338 | PGSR(i) &= ~GPIO_bit(i); | ||
339 | } | ||
340 | } | ||
341 | |||
331 | for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) { | 342 | for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) { |
332 | 343 | ||
333 | saved_gafr[0][i] = GAFR_L(i); | 344 | saved_gafr[0][i] = GAFR_L(i); |