mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-24 10:57:03 +07:00
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: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9308902f30
commit
71827d4342
@ -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)
|
||||
{
|
||||
const struct dio200_board *thisboard = comedi_board(dev);
|
||||
struct dio200_private *devpriv;
|
||||
unsigned long iobase;
|
||||
unsigned int irq;
|
||||
int ret;
|
||||
|
||||
iobase = it->options[0];
|
||||
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);
|
||||
if (!devpriv)
|
||||
return -ENOMEM;
|
||||
dev->private = devpriv;
|
||||
|
||||
ret = dio200_request_region(dev, iobase, thisboard->mainsize);
|
||||
if (ret < 0)
|
||||
ret = comedi_request_region(dev, it->options[0], thisboard->mainsize);
|
||||
if (ret)
|
||||
return ret;
|
||||
devpriv->io.u.iobase = iobase;
|
||||
devpriv->io.u.iobase = dev->iobase;
|
||||
devpriv->io.regtype = io_regtype;
|
||||
return amplc_dio200_common_attach(dev, irq, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user