summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/comedi/drivers/8255_pci.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c
index 808460bbd32e..fff1c08a93fb 100644
--- a/drivers/staging/comedi/drivers/8255_pci.c
+++ b/drivers/staging/comedi/drivers/8255_pci.c
@@ -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));