diff options
author | H Hartley Sweeten <hartleys@visionengravers.com> | 2012-09-24 16:22:10 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-26 12:37:30 -0400 |
commit | f574af6d268240a68f99fac9f2f42ce38b26eae9 (patch) | |
tree | 3c3e390f923aeb98d743f90d0bd3ff202d6afb46 | |
parent | 91e674e83c530d5902e482ede1af0115989c4fe6 (diff) |
staging: comedi: s626: store the pci_dev in the comedi_device
Use the hw_dev pointer in the comedi_device struct to hold the
pci_dev instead of carrying it in the private data.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/comedi/drivers/s626.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c index eff7e962b9b5..e30833f4178c 100644 --- a/drivers/staging/comedi/drivers/s626.c +++ b/drivers/staging/comedi/drivers/s626.c | |||
@@ -79,7 +79,6 @@ INSN_CONFIG instructions: | |||
79 | #define PCI_SUBDEVICE_ID_S626 0x0272 | 79 | #define PCI_SUBDEVICE_ID_S626 0x0272 |
80 | 80 | ||
81 | struct s626_private { | 81 | struct s626_private { |
82 | struct pci_dev *pdev; | ||
83 | void __iomem *base_addr; | 82 | void __iomem *base_addr; |
84 | int got_regions; | 83 | int got_regions; |
85 | short allocatedBuf; | 84 | short allocatedBuf; |
@@ -1882,6 +1881,7 @@ static void WriteMISC2(struct comedi_device *dev, uint16_t NewImage) | |||
1882 | static void CloseDMAB(struct comedi_device *dev, struct bufferDMA *pdma, | 1881 | static void CloseDMAB(struct comedi_device *dev, struct bufferDMA *pdma, |
1883 | size_t bsize) | 1882 | size_t bsize) |
1884 | { | 1883 | { |
1884 | struct pci_dev *pcidev = comedi_to_pci_dev(dev); | ||
1885 | void *vbptr; | 1885 | void *vbptr; |
1886 | dma_addr_t vpptr; | 1886 | dma_addr_t vpptr; |
1887 | 1887 | ||
@@ -1892,7 +1892,7 @@ static void CloseDMAB(struct comedi_device *dev, struct bufferDMA *pdma, | |||
1892 | vbptr = pdma->LogicalBase; | 1892 | vbptr = pdma->LogicalBase; |
1893 | vpptr = pdma->PhysicalBase; | 1893 | vpptr = pdma->PhysicalBase; |
1894 | if (vbptr) { | 1894 | if (vbptr) { |
1895 | pci_free_consistent(devpriv->pdev, bsize, vbptr, vpptr); | 1895 | pci_free_consistent(pcidev, bsize, vbptr, vpptr); |
1896 | pdma->LogicalBase = NULL; | 1896 | pdma->LogicalBase = NULL; |
1897 | pdma->PhysicalBase = 0; | 1897 | pdma->PhysicalBase = 0; |
1898 | } | 1898 | } |
@@ -2452,19 +2452,19 @@ static int s626_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev) | |||
2452 | dma_addr_t appdma; | 2452 | dma_addr_t appdma; |
2453 | struct comedi_subdevice *s; | 2453 | struct comedi_subdevice *s; |
2454 | 2454 | ||
2455 | comedi_set_hw_dev(dev, &pcidev->dev); | ||
2456 | |||
2455 | if (alloc_private(dev, sizeof(struct s626_private)) < 0) | 2457 | if (alloc_private(dev, sizeof(struct s626_private)) < 0) |
2456 | return -ENOMEM; | 2458 | return -ENOMEM; |
2457 | 2459 | ||
2458 | devpriv->pdev = pcidev; | 2460 | result = comedi_pci_enable(pcidev, "s626"); |
2459 | |||
2460 | result = comedi_pci_enable(devpriv->pdev, "s626"); | ||
2461 | if (result < 0) { | 2461 | if (result < 0) { |
2462 | printk(KERN_ERR "s626_attach: comedi_pci_enable fails\n"); | 2462 | printk(KERN_ERR "s626_attach: comedi_pci_enable fails\n"); |
2463 | return -ENODEV; | 2463 | return -ENODEV; |
2464 | } | 2464 | } |
2465 | devpriv->got_regions = 1; | 2465 | devpriv->got_regions = 1; |
2466 | 2466 | ||
2467 | resourceStart = pci_resource_start(devpriv->pdev, 0); | 2467 | resourceStart = pci_resource_start(pcidev, 0); |
2468 | 2468 | ||
2469 | devpriv->base_addr = ioremap(resourceStart, SIZEOF_ADDRESS_SPACE); | 2469 | devpriv->base_addr = ioremap(resourceStart, SIZEOF_ADDRESS_SPACE); |
2470 | if (devpriv->base_addr == NULL) { | 2470 | if (devpriv->base_addr == NULL) { |
@@ -2485,7 +2485,7 @@ static int s626_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev) | |||
2485 | devpriv->allocatedBuf = 0; | 2485 | devpriv->allocatedBuf = 0; |
2486 | 2486 | ||
2487 | devpriv->ANABuf.LogicalBase = | 2487 | devpriv->ANABuf.LogicalBase = |
2488 | pci_alloc_consistent(devpriv->pdev, DMABUF_SIZE, &appdma); | 2488 | pci_alloc_consistent(pcidev, DMABUF_SIZE, &appdma); |
2489 | 2489 | ||
2490 | if (devpriv->ANABuf.LogicalBase == NULL) { | 2490 | if (devpriv->ANABuf.LogicalBase == NULL) { |
2491 | printk(KERN_ERR "s626_attach: DMA Memory mapping error\n"); | 2491 | printk(KERN_ERR "s626_attach: DMA Memory mapping error\n"); |
@@ -2497,7 +2497,7 @@ static int s626_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev) | |||
2497 | devpriv->allocatedBuf++; | 2497 | devpriv->allocatedBuf++; |
2498 | 2498 | ||
2499 | devpriv->RPSBuf.LogicalBase = | 2499 | devpriv->RPSBuf.LogicalBase = |
2500 | pci_alloc_consistent(devpriv->pdev, DMABUF_SIZE, &appdma); | 2500 | pci_alloc_consistent(pcidev, DMABUF_SIZE, &appdma); |
2501 | 2501 | ||
2502 | if (devpriv->RPSBuf.LogicalBase == NULL) { | 2502 | if (devpriv->RPSBuf.LogicalBase == NULL) { |
2503 | printk(KERN_ERR "s626_attach: DMA Memory mapping error\n"); | 2503 | printk(KERN_ERR "s626_attach: DMA Memory mapping error\n"); |
@@ -2517,7 +2517,7 @@ static int s626_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev) | |||
2517 | return ret; | 2517 | return ret; |
2518 | 2518 | ||
2519 | dev->iobase = (unsigned long)devpriv->base_addr; | 2519 | dev->iobase = (unsigned long)devpriv->base_addr; |
2520 | dev->irq = devpriv->pdev->irq; | 2520 | dev->irq = pcidev->irq; |
2521 | 2521 | ||
2522 | /* set up interrupt handler */ | 2522 | /* set up interrupt handler */ |
2523 | if (dev->irq == 0) { | 2523 | if (dev->irq == 0) { |
@@ -2869,6 +2869,8 @@ static int s626_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev) | |||
2869 | 2869 | ||
2870 | static void s626_detach(struct comedi_device *dev) | 2870 | static void s626_detach(struct comedi_device *dev) |
2871 | { | 2871 | { |
2872 | struct pci_dev *pcidev = comedi_to_pci_dev(dev); | ||
2873 | |||
2872 | if (devpriv) { | 2874 | if (devpriv) { |
2873 | /* stop ai_command */ | 2875 | /* stop ai_command */ |
2874 | devpriv->ai_cmd_running = 0; | 2876 | devpriv->ai_cmd_running = 0; |
@@ -2893,10 +2895,10 @@ static void s626_detach(struct comedi_device *dev) | |||
2893 | free_irq(dev->irq, dev); | 2895 | free_irq(dev->irq, dev); |
2894 | if (devpriv->base_addr) | 2896 | if (devpriv->base_addr) |
2895 | iounmap(devpriv->base_addr); | 2897 | iounmap(devpriv->base_addr); |
2896 | if (devpriv->pdev) { | 2898 | } |
2897 | if (devpriv->got_regions) | 2899 | if (pcidev) { |
2898 | comedi_pci_disable(devpriv->pdev); | 2900 | if (devpriv->got_regions) |
2899 | } | 2901 | comedi_pci_disable(pcidev); |
2900 | } | 2902 | } |
2901 | } | 2903 | } |
2902 | 2904 | ||