From: David Brownell This stops the pcmcia core from using dev->power.power_state; that field is deprecated (overdue for removal) and the only reason to update it was to make the /sys/devices/.../power/state files (now removed) work better. Signed-off-by: David Brownell Cc: Dominik Brodowski Signed-off-by: Andrew Morton --- drivers/pcmcia/ds.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff -puN drivers/pcmcia/ds.c~pcmcia-stop-updating-dev-powerpower_state drivers/pcmcia/ds.c --- a/drivers/pcmcia/ds.c~pcmcia-stop-updating-dev-powerpower_state +++ a/drivers/pcmcia/ds.c @@ -1130,8 +1130,6 @@ static int runtime_suspend(struct device down(&dev->sem); rc = pcmcia_dev_suspend(dev, PMSG_SUSPEND); up(&dev->sem); - if (!rc) - dev->power.power_state.event = PM_EVENT_SUSPEND; return rc; } @@ -1142,8 +1140,6 @@ static void runtime_resume(struct device down(&dev->sem); rc = pcmcia_dev_resume(dev); up(&dev->sem); - if (!rc) - dev->power.power_state.event = PM_EVENT_ON; } /************************ per-device sysfs output ***************************/ @@ -1265,6 +1261,9 @@ static int pcmcia_dev_suspend(struct dev struct pcmcia_driver *p_drv = NULL; int ret = 0; + if (p_dev->suspended) + return 0; + ds_dbg(2, "suspending %s\n", dev->bus_id); if (dev->driver) @@ -1301,6 +1300,9 @@ static int pcmcia_dev_resume(struct devi struct pcmcia_driver *p_drv = NULL; int ret = 0; + if (!p_dev->suspended) + return 0; + ds_dbg(2, "resuming %s\n", dev->bus_id); if (dev->driver) _