Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −23
Original line number Diff line number Diff line
@@ -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);
}