Skip to contentSkip to conversation

staging: comedi: ni_daq_700: refactor the pcmcia attach/detach

PATCH In review H Hartley Sweeten 1 participant 1 message Jun 22, 2012 Staging

lore
Share & tools
lore
#0 lore raw

PATCH 31/31 staging: comedi: ni_daq_700: refactor the pcmcia attach/detach

Move the pcmcia_disable_device() call where needed in the pcmcia attach/detach and delete the dio700_release() function.

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

Only set the pcmcia_cur_dev, used by the comedi_driver, if the pcmcia attach is successful. Also, make sure to NULL it in the detach.

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/ni_daq_700.c | 39 +++++++----------------------
 1 file changed, 9 insertions(+), 30 deletions(-)
drivers/staging/comedi/drivers/ni_daq_700.c +9 -30
index c57300f..83016b41 100644
@@ -164,13 +164,6 @@ static struct comedi_driver driver_dio700 = {
 	.offset		= sizeof(struct dio700_board),
 };
 
-static void dio700_release(struct pcmcia_device *link)
-{
-	dev_dbg(&link->dev, "%s\n", __func__);
-
-	pcmcia_disable_device(link);
-}
-
 static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
 				void *priv_data)
 {
@@ -180,50 +173,36 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
 	return pcmcia_request_io(p_dev);
 }
 
-static void dio700_config(struct pcmcia_device *link)
+static int dio700_cs_attach(struct pcmcia_device *link)
 {
 	int ret;
 
-	dev_dbg(&link->dev, "%s\n", __func__);
-
 	link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_AUDIO |
 		CONF_AUTO_SET_IO;
 
 	ret = pcmcia_loop_config(link, dio700_pcmcia_config_loop, NULL);
-	if (ret) {
-		dev_warn(&link->dev, "no configuration found\n");
+	if (ret)
 		goto failed;
-	}
 
 	if (!link->irq)
 		goto failed;
 
 	ret = pcmcia_enable_device(link);
-	if (ret != 0)
+	if (ret)
 		goto failed;
 
-	return;
-
-failed:
-	dev_dbg(&link->dev, "%s failed\n", __func__);
-	dio700_release(link);
-
-}
-
-static int dio700_cs_attach(struct pcmcia_device *link)
-{
-	dev_dbg(&link->dev, "%s\n", __func__);
-
 	pcmcia_cur_dev = link;
-
-	dio700_config(link);
-
 	return 0;
+
+failed:
+	pcmcia_disable_device(link);
+	return ret;
 }
 
 static void dio700_cs_detach(struct pcmcia_device *link)
 {
-	dio700_release(link);
+	pcmcia_disable_device(link);
+	pcmcia_cur_dev = NULL;
 }
 
 static const struct pcmcia_device_id dio700_cs_ids[] = {
Signature · 1 line
1.7.11