diff options
Diffstat (limited to 'drivers/staging/comedi/drivers/gsc_hpdi.c')
-rw-r--r-- | drivers/staging/comedi/drivers/gsc_hpdi.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c b/drivers/staging/comedi/drivers/gsc_hpdi.c index b60c97562676..0c061df0978c 100644 --- a/drivers/staging/comedi/drivers/gsc_hpdi.c +++ b/drivers/staging/comedi/drivers/gsc_hpdi.c @@ -78,12 +78,6 @@ static int dio_config_block_size(struct comedi_device *dev, unsigned int *data); #define NUM_DMA_BUFFERS 4 #define NUM_DMA_DESCRIPTORS 256 -/* indices of base address regions */ -enum base_address_regions { - PLX9080_BADDRINDEX = 0, - HPDI_BADDRINDEX = 2, -}; - enum hpdi_registers { FIRMWARE_REV_REG = 0x0, BOARD_CONTROL_REG = 0x4, @@ -499,20 +493,13 @@ static int hpdi_auto_attach(struct comedi_device *dev, return -ENOMEM; dev->private = devpriv; - if (comedi_pci_enable(pcidev, dev->board_name)) { - dev_warn(dev->class_dev, - "failed enable PCI device and request regions\n"); - return -EIO; - } - dev->iobase = 1; /* the "detach" needs this */ + retval = comedi_pci_enable(dev); + if (retval) + return retval; pci_set_master(pcidev); - devpriv->plx9080_iobase = - ioremap(pci_resource_start(pcidev, PLX9080_BADDRINDEX), - pci_resource_len(pcidev, PLX9080_BADDRINDEX)); - devpriv->hpdi_iobase = - ioremap(pci_resource_start(pcidev, HPDI_BADDRINDEX), - pci_resource_len(pcidev, HPDI_BADDRINDEX)); + devpriv->plx9080_iobase = pci_ioremap_bar(pcidev, 0); + devpriv->hpdi_iobase = pci_ioremap_bar(pcidev, 2); if (!devpriv->plx9080_iobase || !devpriv->hpdi_iobase) { dev_warn(dev->class_dev, "failed to remap io memory\n"); return -ENOMEM; @@ -596,9 +583,8 @@ static void hpdi_detach(struct comedi_device *dev) NUM_DMA_DESCRIPTORS, devpriv->dma_desc, devpriv->dma_desc_phys_addr); - if (dev->iobase) - comedi_pci_disable(pcidev); } + comedi_pci_disable(dev); } static int dio_config_block_size(struct comedi_device *dev, unsigned int *data) @@ -943,9 +929,9 @@ static struct comedi_driver gsc_hpdi_driver = { }; static int gsc_hpdi_pci_probe(struct pci_dev *dev, - const struct pci_device_id *ent) + const struct pci_device_id *id) { - return comedi_pci_auto_config(dev, &gsc_hpdi_driver); + return comedi_pci_auto_config(dev, &gsc_hpdi_driver, id->driver_data); } static DEFINE_PCI_DEVICE_TABLE(gsc_hpdi_pci_table) = { |