X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=drivers%2Fstaging%2Fcomedi%2Fdrivers%2F8255_pci.c;h=8b958982885535fe879776f483ab0a0fbed3e9c9;hb=aac307f9dd5ce1fe651140a036ab4b0a0571b54a;hp=f21e6567ac2f81866ea16cf9195150fee1e20bfd;hpb=dc7aafba6bfa1ea5806c6ac402e690682f950f75;p=cascardo%2Flinux.git diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c index f21e6567ac2f..8b9589828855 100644 --- a/drivers/staging/comedi/drivers/8255_pci.c +++ b/drivers/staging/comedi/drivers/8255_pci.c @@ -190,24 +190,12 @@ static int pci_8255_mite_init(struct pci_dev *pcidev) return 0; } -static int pci_8255_mmio(int dir, int port, int data, unsigned long iobase) -{ - void __iomem *mmio_base = (void __iomem *)iobase; - - if (dir) { - writeb(data, mmio_base + port); - return 0; - } - return readb(mmio_base + port); -} - static int pci_8255_auto_attach(struct comedi_device *dev, unsigned long context) { struct pci_dev *pcidev = comedi_to_pci_dev(dev); const struct pci_8255_boardinfo *board = NULL; struct comedi_subdevice *s; - bool is_mmio; int ret; int i; @@ -228,9 +216,7 @@ static int pci_8255_auto_attach(struct comedi_device *dev, return ret; } - is_mmio = (pci_resource_flags(pcidev, board->dio_badr) & - IORESOURCE_MEM) != 0; - if (is_mmio) { + if ((pci_resource_flags(pcidev, board->dio_badr) & IORESOURCE_MEM)) { dev->mmio = pci_ioremap_bar(pcidev, board->dio_badr); if (!dev->mmio) return -ENOMEM; @@ -248,16 +234,11 @@ static int pci_8255_auto_attach(struct comedi_device *dev, return ret; for (i = 0; i < board->n_8255; i++) { - unsigned long iobase; - s = &dev->subdevices[i]; - if (is_mmio) { - iobase = (unsigned long)(dev->mmio + (i * 4)); - ret = subdev_8255_init(dev, s, pci_8255_mmio, iobase); - } else { - iobase = dev->iobase + (i * 4); - ret = subdev_8255_init(dev, s, NULL, iobase); - } + if (dev->mmio) + ret = subdev_8255_mm_init(dev, s, NULL, i * I8255_SIZE); + else + ret = subdev_8255_init(dev, s, NULL, i * I8255_SIZE); if (ret) return ret; } @@ -265,18 +246,11 @@ static int pci_8255_auto_attach(struct comedi_device *dev, return 0; } -static void pci_8255_detach(struct comedi_device *dev) -{ - if (dev->mmio) - iounmap(dev->mmio); - comedi_pci_disable(dev); -} - static struct comedi_driver pci_8255_driver = { .driver_name = "8255_pci", .module = THIS_MODULE, .auto_attach = pci_8255_auto_attach, - .detach = pci_8255_detach, + .detach = comedi_pci_detach, }; static int pci_8255_pci_probe(struct pci_dev *dev,