aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/gsc_hpdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/comedi/drivers/gsc_hpdi.c')
-rw-r--r--drivers/staging/comedi/drivers/gsc_hpdi.c30
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) = {