diff options
Diffstat (limited to 'drivers/staging/comedi/drivers/aio_aio12_8.c')
-rw-r--r-- | drivers/staging/comedi/drivers/aio_aio12_8.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 601f03d5897f..e2dc08a058bc 100644 --- a/drivers/staging/comedi/drivers/aio_aio12_8.c +++ b/drivers/staging/comedi/drivers/aio_aio12_8.c @@ -200,17 +200,11 @@ static int aio_aio12_8_attach(struct comedi_device *dev, const struct aio12_8_boardtype *board = comedi_board(dev); struct aio12_8_private *devpriv; struct comedi_subdevice *s; - int iobase; int ret; - dev->board_name = board->name; - - iobase = it->options[0]; - if (!request_region(iobase, 32, dev->board_name)) { - printk(KERN_ERR "I/O port conflict"); - return -EIO; - } - dev->iobase = iobase; + ret = comedi_request_region(dev, it->options[0], 32); + if (ret) + return ret; devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL); if (!devpriv) @@ -250,8 +244,8 @@ static int aio_aio12_8_attach(struct comedi_device *dev, s = &dev->subdevices[2]; /* 8255 Digital i/o subdevice */ - iobase = dev->iobase + AIO12_8_8255_BASE_REG; - ret = subdev_8255_init(dev, s, NULL, iobase); + ret = subdev_8255_init(dev, s, NULL, + dev->iobase + AIO12_8_8255_BASE_REG); if (ret) return ret; @@ -267,10 +261,8 @@ static int aio_aio12_8_attach(struct comedi_device *dev, static void aio_aio12_8_detach(struct comedi_device *dev) { - if (dev->subdevices) - subdev_8255_cleanup(dev, &dev->subdevices[2]); - if (dev->iobase) - release_region(dev->iobase, 24); + comedi_spriv_free(dev, 2); + comedi_legacy_detach(dev); } static struct comedi_driver aio_aio12_8_driver = { |