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

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

staging: comedi: 8255_pci: use pci_ioremap_bar()



Use pci_ioremap_bar() to ioremap the PCI resources. That function
just takes the pci device and a bar number. It also has some
additional sanity checks to make sure the bar is actually a
memory resource.

Refactor the code a bit. The dev->iobase only needs to be set
when the board does not use memory mapped I/O. And the 'iobase'
passed to subdev_8255_init() is an unsigned long.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 55d2a208
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -187,8 +187,6 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
	const struct pci_8255_boardinfo *board = NULL;
	struct pci_8255_private *devpriv;
	struct comedi_subdevice *s;
	resource_size_t iobase;
	unsigned long len;
	int ret;
	int i;

@@ -207,15 +205,14 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
	ret = comedi_pci_enable(dev);
	if (ret)
		return ret;
	iobase = pci_resource_start(pcidev, board->dio_badr);
	len = pci_resource_len(pcidev, board->dio_badr);

	if (board->is_mmio) {
		devpriv->mmio_base = ioremap(iobase, len);
		devpriv->mmio_base = pci_ioremap_bar(pcidev, board->dio_badr);
		if (!devpriv->mmio_base)
			return -ENOMEM;
	} else {
		dev->iobase = pci_resource_start(pcidev, board->dio_badr);
	}
	dev->iobase = iobase;

	/*
	 * One, two, or four subdevices are setup by this driver depending
@@ -227,6 +224,8 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
		return ret;

	for (i = 0; i < board->n_8255; i++) {
		unsigned long iobase;

		s = &dev->subdevices[i];
		if (board->is_mmio) {
			iobase = (unsigned long)(devpriv->mmio_base + (i * 4));