aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/pcl711.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/comedi/drivers/pcl711.c')
-rw-r--r--drivers/staging/comedi/drivers/pcl711.c30
1 files changed, 6 insertions, 24 deletions
diff --git a/drivers/staging/comedi/drivers/pcl711.c b/drivers/staging/comedi/drivers/pcl711.c
index 6ee5da24a961..8be2a4c503cc 100644
--- a/drivers/staging/comedi/drivers/pcl711.c
+++ b/drivers/staging/comedi/drivers/pcl711.c
@@ -451,23 +451,12 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
const struct pcl711_board *board = comedi_board(dev);
struct pcl711_private *devpriv;
int ret;
- unsigned long iobase;
unsigned int irq;
struct comedi_subdevice *s;
- /* claim our I/O space */
-
- iobase = it->options[0];
- printk(KERN_INFO "comedi%d: pcl711: 0x%04lx ", dev->minor, iobase);
- if (!request_region(iobase, PCL711_SIZE, "pcl711")) {
- printk("I/O port conflict\n");
- return -EIO;
- }
- dev->iobase = iobase;
-
- /* there should be a sanity check here */
-
- dev->board_name = board->name;
+ ret = comedi_request_region(dev, it->options[0], PCL711_SIZE);
+ if (ret)
+ return ret;
/* grab our IRQ */
irq = it->options[1];
@@ -476,7 +465,8 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return -EINVAL;
}
if (irq) {
- if (request_irq(irq, pcl711_interrupt, 0, "pcl711", dev)) {
+ if (request_irq(irq, pcl711_interrupt, 0, dev->board_name,
+ dev)) {
printk(KERN_ERR "unable to allocate irq %u\n", irq);
return -EINVAL;
} else {
@@ -560,14 +550,6 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return 0;
}
-static void pcl711_detach(struct comedi_device *dev)
-{
- if (dev->irq)
- free_irq(dev->irq, dev);
- if (dev->iobase)
- release_region(dev->iobase, PCL711_SIZE);
-}
-
static const struct pcl711_board boardtypes[] = {
{ "pcl711", 0, 0, 0, 5, 8, 1, 0, &range_bipolar5 },
{ "pcl711b", 1, 0, 0, 5, 8, 1, 7, &range_pcl711b_ai },
@@ -579,7 +561,7 @@ static struct comedi_driver pcl711_driver = {
.driver_name = "pcl711",
.module = THIS_MODULE,
.attach = pcl711_attach,
- .detach = pcl711_detach,
+ .detach = comedi_legacy_detach,
.board_name = &boardtypes[0].name,
.num_names = ARRAY_SIZE(boardtypes),
.offset = sizeof(struct pcl711_board),