Merge tag 'cleanup-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[cascardo/linux.git] / drivers / staging / comedi / drivers / 8255_pci.c
index 46a385c..f21e656 100644 (file)
@@ -56,7 +56,6 @@ Configuration Options: not applicable, uses PCI auto config
 #include "../comedidev.h"
 
 #include "8255.h"
-#include "mite.h"
 
 enum pci_8255_boardid {
        BOARD_ADLINK_PCI7224,
@@ -168,9 +167,9 @@ static const struct pci_8255_boardinfo pci_8255_boards[] = {
        },
 };
 
-struct pci_8255_private {
-       void __iomem *mmio_base;
-};
+/* ripped from mite.h and mite_setup2() to avoid mite dependancy */
+#define MITE_IODWBSR   0xc0     /* IO Device Window Base Size Register */
+#define WENAB          (1 << 7) /* window enable */
 
 static int pci_8255_mite_init(struct pci_dev *pcidev)
 {
@@ -198,9 +197,8 @@ static int pci_8255_mmio(int dir, int port, int data, unsigned long iobase)
        if (dir) {
                writeb(data, mmio_base + port);
                return 0;
-       } else {
-               return readb(mmio_base  + port);
        }
+       return readb(mmio_base  + port);
 }
 
 static int pci_8255_auto_attach(struct comedi_device *dev,
@@ -208,7 +206,6 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
 {
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
        const struct pci_8255_boardinfo *board = NULL;
-       struct pci_8255_private *devpriv;
        struct comedi_subdevice *s;
        bool is_mmio;
        int ret;
@@ -221,10 +218,6 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
        dev->board_ptr = board;
        dev->board_name = board->name;
 
-       devpriv = comedi_alloc_devpriv(dev, sizeof(*devpriv));
-       if (!devpriv)
-               return -ENOMEM;
-
        ret = comedi_pci_enable(dev);
        if (ret)
                return ret;
@@ -238,8 +231,8 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
        is_mmio = (pci_resource_flags(pcidev, board->dio_badr) &
                   IORESOURCE_MEM) != 0;
        if (is_mmio) {
-               devpriv->mmio_base = pci_ioremap_bar(pcidev, board->dio_badr);
-               if (!devpriv->mmio_base)
+               dev->mmio = pci_ioremap_bar(pcidev, board->dio_badr);
+               if (!dev->mmio)
                        return -ENOMEM;
        } else {
                dev->iobase = pci_resource_start(pcidev, board->dio_badr);
@@ -259,7 +252,7 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
 
                s = &dev->subdevices[i];
                if (is_mmio) {
-                       iobase = (unsigned long)(devpriv->mmio_base + (i * 4));
+                       iobase = (unsigned long)(dev->mmio + (i * 4));
                        ret = subdev_8255_init(dev, s, pci_8255_mmio, iobase);
                } else {
                        iobase = dev->iobase + (i * 4);
@@ -274,10 +267,8 @@ static int pci_8255_auto_attach(struct comedi_device *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);
+       if (dev->mmio)
+               iounmap(dev->mmio);
        comedi_pci_disable(dev);
 }