diff options
Diffstat (limited to 'drivers/staging/comedi/drivers/das6402.c')
-rw-r--r-- | drivers/staging/comedi/drivers/das6402.c | 27 |
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) |