aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/das6402.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/comedi/drivers/das6402.c')
-rw-r--r--drivers/staging/comedi/drivers/das6402.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/drivers/staging/comedi/drivers/das6402.c b/drivers/staging/comedi/drivers/das6402.c
index 2efddb89bbc..11424fb5b4d 100644
--- a/drivers/staging/comedi/drivers/das6402.c
+++ b/drivers/staging/comedi/drivers/das6402.c
@@ -284,23 +284,12 @@ static int das6402_attach(struct comedi_device *dev,
{
struct das6402_private *devpriv;
unsigned int irq;
- unsigned long iobase;
int ret;
struct comedi_subdevice *s;
- dev->board_name = "das6402";
-
- iobase = it->options[0];
- if (iobase == 0)
- iobase = 0x300;
-
- if (!request_region(iobase, DAS6402_SIZE, "das6402")) {
- dev_err(dev->class_dev, "I/O port conflict\n");
- return -EIO;
- }
- dev->iobase = iobase;
-
- /* should do a probe here */
+ ret = comedi_request_region(dev, it->options[0], DAS6402_SIZE);
+ if (ret)
+ return ret;
irq = it->options[0];
dev_dbg(dev->class_dev, "( irq = %u )\n", irq);
@@ -335,19 +324,11 @@ static int das6402_attach(struct comedi_device *dev,
return 0;
}
-static void das6402_detach(struct comedi_device *dev)
-{
- if (dev->irq)
- free_irq(dev->irq, dev);
- if (dev->iobase)
- release_region(dev->iobase, DAS6402_SIZE);
-}
-
static struct comedi_driver das6402_driver = {
.driver_name = "das6402",
.module = THIS_MODULE,
.attach = das6402_attach,
- .detach = das6402_detach,
+ .detach = comedi_legacy_detach,
};
module_comedi_driver(das6402_driver)