Skip to contentSkip to conversation

staging: comedi: das08_cs: refactor the pcmcia probe/remove

PATCH New H Hartley Sweeten 1 participant 1 message Jul 2, 2012 Staging

lore
Share & tools
lore
#0 lore raw

PATCH 10/12 staging: comedi: das08_cs: refactor the pcmcia probe/remove

Move the pcmcia_disable_device() call where needed in the pcmcia probe/remove and delete the das08_pcmcia_release() function.

Move the logic of the das08_pcmcia_config() directly into the probe function and properly return an error code when the config fails.

Only set cur_dev, used by the comedi_driver, if the pcmcia probe is successful. Also, make sure to NULL it in the remove.

Remove all the kernel messages in the pcmcia support code. They are just added noise.

Cc Ian Abbott <[email protected]>
Cc Frank Mori Hess <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/comedi/drivers/das08_cs.c | 38 +++++++------------------------
 1 file changed, 8 insertions(+), 30 deletions(-)
drivers/staging/comedi/drivers/das08_cs.c +8 -30
index d02250e..f2f33e1 100644
@@ -104,12 +104,6 @@ static int das08_cs_attach(struct comedi_device *dev,
 	return das08_common_attach(dev, iobase);
 }
 
-static void das08_pcmcia_release(struct pcmcia_device *link)
-{
-	dev_dbg(&link->dev, "das08_pcmcia_release\n");
-	pcmcia_disable_device(link);
-}
-
 static int das08_pcmcia_config_loop(struct pcmcia_device *p_dev,
 				void *priv_data)
 {
@@ -119,19 +113,15 @@ static int das08_pcmcia_config_loop(struct pcmcia_device *p_dev,
 	return pcmcia_request_io(p_dev);
 }
 
-static void das08_pcmcia_config(struct pcmcia_device *link)
+static int das08_pcmcia_attach(struct pcmcia_device *link)
 {
 	int ret;
 
-	dev_dbg(&link->dev, "das08_pcmcia_config\n");
-
 	link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
 
 	ret = pcmcia_loop_config(link, das08_pcmcia_config_loop, NULL);
-	if (ret) {
-		dev_warn(&link->dev, "no configuration found\n");
+	if (ret)
 		goto failed;
-	}
 
 	if (!link->irq)
 		goto failed;
@@ -140,30 +130,18 @@ static void das08_pcmcia_config(struct pcmcia_device *link)
 	if (ret)
 		goto failed;
 
-	return;
-
-failed:
-	das08_pcmcia_release(link);
-
-}
-
-static int das08_pcmcia_attach(struct pcmcia_device *link)
-{
-	dev_dbg(&link->dev, "das08_pcmcia_attach()\n");
-
 	cur_dev = link;
-
-	das08_pcmcia_config(link);
-
 	return 0;
+
+failed:
+	pcmcia_disable_device(link);
+	return ret;
 }
 
 static void das08_pcmcia_detach(struct pcmcia_device *link)
 {
-
-	dev_dbg(&link->dev, "das08_pcmcia_detach\n");
-
-	das08_pcmcia_release(link);
+	pcmcia_disable_device(link);
+	cur_dev = NULL;
 }
 
 static const struct pcmcia_device_id das08_cs_id_table[] = {
Signature · 1 line
1.7.11