static void dio200_pci_detach(struct comedi_device *dev) { amplc_dio200_common_detach(dev); if (dev->mmio) iounmap(dev->mmio); comedi_pci_disable(dev); }
static void pci_8255_detach(struct comedi_device *dev) { struct pci_8255_private *devpriv = dev->private; if (devpriv && devpriv->mmio_base) iounmap(devpriv->mmio_base); comedi_pci_disable(dev); }
static void apci1032_detach(struct comedi_device *dev) { if (dev->iobase) apci1032_reset(dev); if (dev->irq) free_irq(dev->irq, dev); comedi_pci_disable(dev); }
static void contec_detach(struct comedi_device *dev) { struct pci_dev *pcidev = comedi_to_pci_dev(dev); if (pcidev) { if (dev->iobase) comedi_pci_disable(pcidev); } }
static void dio200_pci_detach(struct comedi_device *dev) { const struct dio200_board *thisboard = comedi_board(dev); struct dio200_private *devpriv = dev->private; if (!thisboard || !devpriv) return; amplc_dio200_common_detach(dev); if (devpriv->io.regtype == mmio_regtype) iounmap(devpriv->io.u.membase); comedi_pci_disable(dev); }
static void labpc_pci_detach(struct comedi_device *dev) { struct labpc_private *devpriv = dev->private; if (devpriv && devpriv->mite) { mite_unsetup(devpriv->mite); mite_free(devpriv->mite); } if (dev->irq) free_irq(dev->irq, dev); comedi_pci_disable(dev); }
static int adl_pci8164_detach(comedi_device * dev) { printk("comedi%d: pci8164: remove\n", dev->minor); if (devpriv && devpriv->pci_dev) { if (dev->iobase) { comedi_pci_disable(devpriv->pci_dev); } pci_dev_put(devpriv->pci_dev); } return 0; }
/** * comedi_pci_detach() - A generic "detach" handler for PCI COMEDI drivers * @dev: COMEDI device. * * COMEDI drivers for PCI devices that need no special clean-up of private data * and have no ioremapped regions other than that pointed to by @dev->mmio may * use this function as its "detach" handler called by the COMEDI core when a * COMEDI device is being detached from the low-level driver. It may be also * called from a more specific "detach" handler that does additional clean-up. * * Free the IRQ if @dev->irq is non-zero, iounmap @dev->mmio if it is * non-%NULL, and call comedi_pci_disable() to release the PCI device's regions * and disable it. */ void comedi_pci_detach(struct comedi_device *dev) { struct pci_dev *pcidev = comedi_to_pci_dev(dev); if (!pcidev || !dev->ioenabled) return; if (dev->irq) { free_irq(dev->irq, dev); dev->irq = 0; } if (dev->mmio) { iounmap(dev->mmio); dev->mmio = NULL; } comedi_pci_disable(dev); }
void mite_unsetup(struct mite_struct *mite) { /* unsigned long offset, start, length; */ if (!mite) return; if (mite->mite_io_addr) { iounmap(mite->mite_io_addr); mite->mite_io_addr = NULL; } if (mite->daq_io_addr) { iounmap(mite->daq_io_addr); mite->daq_io_addr = NULL; } if (mite->mite_phys_addr) { comedi_pci_disable(mite->pcidev); mite->mite_phys_addr = 0; } }
void mite_unsetup(struct mite_struct *mite) { if (!mite) return; if (mite->mite_io_addr) { iounmap(mite->mite_io_addr); mite->mite_io_addr = NULL; } if (mite->daq_io_addr) { iounmap(mite->daq_io_addr); mite->daq_io_addr = NULL; } if (mite->mite_phys_addr) { comedi_pci_disable(mite->pcidev); mite->mite_phys_addr = 0; } mite->used = 0; }