diff options
-rw-r--r-- | drivers/pcmcia/ds.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index 15c18f5246d6..846468ce1144 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c | |||
@@ -1130,8 +1130,6 @@ static int runtime_suspend(struct device *dev) | |||
1130 | down(&dev->sem); | 1130 | down(&dev->sem); |
1131 | rc = pcmcia_dev_suspend(dev, PMSG_SUSPEND); | 1131 | rc = pcmcia_dev_suspend(dev, PMSG_SUSPEND); |
1132 | up(&dev->sem); | 1132 | up(&dev->sem); |
1133 | if (!rc) | ||
1134 | dev->power.power_state.event = PM_EVENT_SUSPEND; | ||
1135 | return rc; | 1133 | return rc; |
1136 | } | 1134 | } |
1137 | 1135 | ||
@@ -1142,8 +1140,6 @@ static void runtime_resume(struct device *dev) | |||
1142 | down(&dev->sem); | 1140 | down(&dev->sem); |
1143 | rc = pcmcia_dev_resume(dev); | 1141 | rc = pcmcia_dev_resume(dev); |
1144 | up(&dev->sem); | 1142 | up(&dev->sem); |
1145 | if (!rc) | ||
1146 | dev->power.power_state.event = PM_EVENT_ON; | ||
1147 | } | 1143 | } |
1148 | 1144 | ||
1149 | /************************ per-device sysfs output ***************************/ | 1145 | /************************ per-device sysfs output ***************************/ |
@@ -1265,6 +1261,9 @@ static int pcmcia_dev_suspend(struct device * dev, pm_message_t state) | |||
1265 | struct pcmcia_driver *p_drv = NULL; | 1261 | struct pcmcia_driver *p_drv = NULL; |
1266 | int ret = 0; | 1262 | int ret = 0; |
1267 | 1263 | ||
1264 | if (p_dev->suspended) | ||
1265 | return 0; | ||
1266 | |||
1268 | ds_dbg(2, "suspending %s\n", dev->bus_id); | 1267 | ds_dbg(2, "suspending %s\n", dev->bus_id); |
1269 | 1268 | ||
1270 | if (dev->driver) | 1269 | if (dev->driver) |
@@ -1301,6 +1300,9 @@ static int pcmcia_dev_resume(struct device * dev) | |||
1301 | struct pcmcia_driver *p_drv = NULL; | 1300 | struct pcmcia_driver *p_drv = NULL; |
1302 | int ret = 0; | 1301 | int ret = 0; |
1303 | 1302 | ||
1303 | if (!p_dev->suspended) | ||
1304 | return 0; | ||
1305 | |||
1304 | ds_dbg(2, "resuming %s\n", dev->bus_id); | 1306 | ds_dbg(2, "resuming %s\n", dev->bus_id); |
1305 | 1307 | ||
1306 | if (dev->driver) | 1308 | if (dev->driver) |