[PATCH] pcmcia: remove unused p_dev->state flags

Remove the unused DEV_RELEASE_PENDING flag, and move the DEV_SUSPEND flag
into the p_dev structure, and make use of it at the core level.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>

diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index e8fe544..34e634a 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -945,7 +945,7 @@
 {
 	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
 
-	if (p_dev->dev.power.power_state.event != PM_EVENT_ON)
+	if (p_dev->suspended)
 		return sprintf(buf, "off\n");
 	else
 		return sprintf(buf, "on\n");
@@ -960,11 +960,9 @@
         if (!count)
                 return -EINVAL;
 
-	if ((p_dev->dev.power.power_state.event == PM_EVENT_ON) &&
-	    (!strncmp(buf, "off", 3)))
+	if ((!p_dev->suspended) && !strncmp(buf, "off", 3))
 		ret = dpm_runtime_suspend(dev, PMSG_SUSPEND);
-	else if ((p_dev->dev.power.power_state.event != PM_EVENT_ON) &&
-		 (!strncmp(buf, "on", 2)))
+	else if (p_dev->suspended && !strncmp(buf, "on", 2))
 		dpm_runtime_resume(dev);
 
 	return ret ? ret : count;
@@ -1030,7 +1028,7 @@
 {
 	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
 	struct pcmcia_driver *p_drv = NULL;
-	int ret;
+	int ret = 0;
 
 	if (dev->driver)
 		p_drv = to_pcmcia_drv(dev->driver);
@@ -1038,14 +1036,16 @@
 	if (p_drv && p_drv->suspend) {
 		ret = p_drv->suspend(p_dev);
 		if (ret)
-			return ret;
-		p_dev->state |= DEV_SUSPEND;
-			if ((p_dev->state & DEV_CONFIG) &&
-			    !(p_dev->state & DEV_SUSPEND_NORELEASE))
-				pcmcia_release_configuration(p_dev);
+			goto out;
+		if ((p_dev->state & DEV_CONFIG) &&
+		    !(p_dev->state & DEV_SUSPEND_NORELEASE))
+			pcmcia_release_configuration(p_dev);
 	}
 
-	return 0;
+ out:
+	if (!ret)
+		p_dev->suspended = 1;
+	return ret;
 }
 
 
@@ -1053,24 +1053,26 @@
 {
 	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
         struct pcmcia_driver *p_drv = NULL;
-	int ret;
+	int ret = 0;
 
 	if (dev->driver)
 		p_drv = to_pcmcia_drv(dev->driver);
 
 	if (p_drv && p_drv->resume) {
-		p_dev->state &= ~DEV_SUSPEND;
-			if ((p_dev->state & DEV_CONFIG) &&
-			    !(p_dev->state & DEV_SUSPEND_NORELEASE)){
-				ret = pcmcia_request_configuration(p_dev,
-						 &p_dev->conf);
-				if (ret)
-					return ret;
-			}
-		return p_drv->resume(p_dev);
+		if ((p_dev->state & DEV_CONFIG) &&
+		    !(p_dev->state & DEV_SUSPEND_NORELEASE)){
+			ret = pcmcia_request_configuration(p_dev,
+							   &p_dev->conf);
+			if (ret)
+				goto out;
+		}
+		ret = p_drv->resume(p_dev);
 	}
 
-	return 0;
+ out:
+	if (!ret)
+		p_dev->suspended = 0;
+	return ret;
 }