summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-04-09 16:14:53 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-11 12:47:38 -0700
commita983834ee4f537079fb12b9ba237b7347f217c93 (patch)
tree0d946b04225e958e7b195a4bc1194288a21e1dd0
parent45f9fcc2ffe8664d3f9a019f150dc11862ab34f4 (diff)
staging: comedi: das16m1: use comedi_request_region()
Use comedi_request_region() to request the I/O region used by this driver. Remove the error message when the request_region() fails, comedi_request_reqion() will output the error message if necessary. This driver does a second request_region() for the I/O space needed by the 8255 chip. Modify the error message if that request fails so it matches to format of the comedi_request_region() message. 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>
-rw-r--r--drivers/staging/comedi/drivers/das16m1.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/staging/comedi/drivers/das16m1.c b/drivers/staging/comedi/drivers/das16m1.c
index 3c37a660a154..6c4fad5b2455 100644
--- a/drivers/staging/comedi/drivers/das16m1.c
+++ b/drivers/staging/comedi/drivers/das16m1.c
@@ -571,26 +571,24 @@ static int das16m1_attach(struct comedi_device *dev,
struct comedi_subdevice *s;
int ret;
unsigned int irq;
- unsigned long iobase;
-
- iobase = it->options[0];
devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL);
if (!devpriv)
return -ENOMEM;
dev->private = devpriv;
- if (!request_region(iobase, DAS16M1_SIZE, dev->board_name)) {
- comedi_error(dev, "I/O port conflict\n");
- return -EIO;
- }
- if (!request_region(iobase + DAS16M1_82C55, DAS16M1_SIZE2,
+ ret = comedi_request_region(dev, it->options[0], DAS16M1_SIZE);
+ if (ret)
+ return ret;
+ /* Request an additional region for the 8255 */
+ if (!request_region(dev->iobase + DAS16M1_82C55, DAS16M1_SIZE2,
dev->board_name)) {
- release_region(iobase, DAS16M1_SIZE);
- comedi_error(dev, "I/O port conflict\n");
+ release_region(dev->iobase, DAS16M1_SIZE);
+ dev_warn(dev->class_dev, "%s: I/O port conflict (%#lx,%d)\n",
+ dev->board_name,
+ dev->iobase + DAS16M1_82C55, DAS16M1_SIZE2);
return -EIO;
}
- dev->iobase = iobase;
/* now for the irq */
irq = it->options[1];