Skip to content

Commit

Permalink
staging: comedi: 8255_pci: use pci_ioremap_bar()
Browse files Browse the repository at this point in the history
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: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Apr 11, 2013
1 parent 55d2a20 commit 4353552
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions drivers/staging/comedi/drivers/8255_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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
Expand All @@ -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));
Expand Down

0 comments on commit 4353552

Please sign in to comment.