aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/pcmad.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/comedi/drivers/pcmad.c')
-rw-r--r--drivers/staging/comedi/drivers/pcmad.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/drivers/staging/comedi/drivers/pcmad.c b/drivers/staging/comedi/drivers/pcmad.c
index 13e84215fac..b7c932e152e 100644
--- a/drivers/staging/comedi/drivers/pcmad.c
+++ b/drivers/staging/comedi/drivers/pcmad.c
@@ -105,18 +105,12 @@ static int pcmad_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
const struct pcmad_board_struct *board = comedi_board(dev);
struct pcmad_priv_struct *devpriv;
- int ret;
struct comedi_subdevice *s;
- unsigned long iobase;
+ int ret;
- iobase = it->options[0];
- printk(KERN_INFO "comedi%d: pcmad: 0x%04lx ", dev->minor, iobase);
- if (!request_region(iobase, PCMAD_SIZE, "pcmad")) {
- printk(KERN_CONT "I/O port conflict\n");
- return -EIO;
- }
- printk(KERN_CONT "\n");
- dev->iobase = iobase;
+ ret = comedi_request_region(dev, it->options[0], PCMAD_SIZE);
+ if (ret)
+ return ret;
ret = comedi_alloc_subdevices(dev, 1);
if (ret)
@@ -127,8 +121,6 @@ static int pcmad_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return -ENOMEM;
dev->private = devpriv;
- dev->board_name = board->name;
-
s = &dev->subdevices[0];
s->type = COMEDI_SUBD_AI;
s->subdev_flags = SDF_READABLE | AREF_GROUND;
@@ -141,14 +133,6 @@ static int pcmad_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return 0;
}
-static void pcmad_detach(struct comedi_device *dev)
-{
- if (dev->irq)
- free_irq(dev->irq, dev);
- if (dev->iobase)
- release_region(dev->iobase, PCMAD_SIZE);
-}
-
static const struct pcmad_board_struct pcmad_boards[] = {
{
.name = "pcmad12",
@@ -162,7 +146,7 @@ static struct comedi_driver pcmad_driver = {
.driver_name = "pcmad",
.module = THIS_MODULE,
.attach = pcmad_attach,
- .detach = pcmad_detach,
+ .detach = comedi_legacy_detach,
.board_name = &pcmad_boards[0].name,
.num_names = ARRAY_SIZE(pcmad_boards),
.offset = sizeof(pcmad_boards[0]),