Commit 71827d43 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: ampcl_dio200: use comedi_request_region()

Use comedi_request_region() to request the I/O region used by this
driver.

Remove the noise when the board is first attached as well as the
error message when the request_region() fails, comedi_request_reqion()
will output the error message if necessary.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9308902f
...@@ -268,44 +268,24 @@ static const struct dio200_board dio200_isa_boards[] = { ...@@ -268,44 +268,24 @@ static const struct dio200_board dio200_isa_boards[] = {
}, },
}; };
/*
* This function checks and requests an I/O region, reporting an error
* if there is a conflict.
*/
static int
dio200_request_region(struct comedi_device *dev,
unsigned long from, unsigned long extent)
{
if (!from || !request_region(from, extent, dev->board_name)) {
dev_err(dev->class_dev, "I/O port conflict (%#lx,%lu)!\n",
from, extent);
return -EIO;
}
return 0;
}
static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it) static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{ {
const struct dio200_board *thisboard = comedi_board(dev); const struct dio200_board *thisboard = comedi_board(dev);
struct dio200_private *devpriv; struct dio200_private *devpriv;
unsigned long iobase;
unsigned int irq; unsigned int irq;
int ret; int ret;
iobase = it->options[0];
irq = it->options[1]; irq = it->options[1];
dev_info(dev->class_dev, "%s: attach %s 0x%lX,%u\n",
dev->driver->driver_name, dev->board_name, iobase, irq);
devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL); devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL);
if (!devpriv) if (!devpriv)
return -ENOMEM; return -ENOMEM;
dev->private = devpriv; dev->private = devpriv;
ret = dio200_request_region(dev, iobase, thisboard->mainsize); ret = comedi_request_region(dev, it->options[0], thisboard->mainsize);
if (ret < 0) if (ret)
return ret; return ret;
devpriv->io.u.iobase = iobase; devpriv->io.u.iobase = dev->iobase;
devpriv->io.regtype = io_regtype; devpriv->io.regtype = io_regtype;
return amplc_dio200_common_attach(dev, irq, 0); return amplc_dio200_common_attach(dev, irq, 0);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment