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. This also makes sure that the entire PCI bar is ioremap'ed instead of assuming the size of the bar. Also, since this driver only uses memory mapped I/O it is not necessary to set the dev->iobase. Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/drivers/icp_multi.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 2bd916e..08ab9d6 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -68,8 +68,6 @@ Configuration options: not applicable, uses PCI auto config #define ICP_MULTI_CNTR2 0x14 /* R/W: Counter 2 */ #define ICP_MULTI_CNTR3 0x16 /* R/W: Counter 3 */ -#define ICP_MULTI_SIZE 0x20 /* 32 bytes */ - /* Define bits from ADC command/status register */ #define ADC_ST 0x0001 /* Start ADC */ #define ADC_BSY 0x0001 /* ADC busy */ @@ -500,7 +498,6 @@ static int icp_multi_auto_attach(struct comedi_device *dev, struct pci_dev *pcidev = comedi_to_pci_dev(dev); struct icp_multi_private *devpriv; struct comedi_subdevice *s; - resource_size_t iobase; int ret; devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL); @@ -511,10 +508,8 @@ static int icp_multi_auto_attach(struct comedi_device *dev, ret = comedi_pci_enable(dev); if (ret) return ret; - iobase = pci_resource_start(pcidev, 2); - dev->iobase = iobase; - devpriv->io_addr = ioremap(iobase, ICP_MULTI_SIZE); + devpriv->io_addr = pci_ioremap_bar(pcidev, 2); if (!devpriv->io_addr) return -ENOMEM; -- 1.8.1.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel