summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@net.rmk.(none)>2004-12-16 20:16:53 +0000
committerRussell King <rmk@flint.arm.linux.org.uk>2004-12-16 20:16:53 +0000
commit1b6d94aaeeddec2327e7e20d3d21c7581a577ca6 (patch)
treeb55ab661670471fd750c70759dd983cc2ef916b8
parent12ccb6611cc1c26abbbe8a1f5c7980d6a8e0c459 (diff)
[ARM PATCH] 2315/1: PXA PCMCIA Suspend/Resume bugfix
Patch from Richard Purdie The base PCMCIA code for PXA2xx doesn't work over a suspend/resume cycle as the MECR register isn't preserved. This patch restores the register. Signed-off-by: Richard Purdie Signed-off-by: Russell King
-rw-r--r--drivers/pcmcia/pxa2xx_base.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index 2bdf9a004397..a6936a75a87e 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -217,7 +217,13 @@ static int pxa2xx_drv_pcmcia_resume(struct device *dev, u32 level)
{
int ret = 0;
if (level == RESUME_RESTORE_STATE)
+ {
+ struct pcmcia_low_level *ops = dev->platform_data;
+ int nr = ops ? ops->nr : 0;
+
+ MECR = nr > 1 ? MECR_CIT | MECR_NOS : (nr > 0 ? MECR_CIT : 0);
ret = pcmcia_socket_dev_resume(dev);
+ }
return ret;
}