summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/ni_mio_cs.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2014-06-19 10:20:36 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-19 13:11:33 -0700
commitac63baf5517cb7c22d63e2c5d269994f3002c7e0 (patch)
tree6cda49e11a12d02d73fc0861ea66dedeab87efd1 /drivers/staging/comedi/drivers/ni_mio_cs.c
parent5a92cac5dc3b48a4ae176045e1f13ecde5a7b586 (diff)
staging: comedi: ni_stc.h: remove read/write callbacks from ni_private
The drivers that include ni_mio_common.c set the read/write callbacks to private functions that handle the read/write operations in the correct manner for the hardware. The ni_atmio and ni_mio_cs drivers use ioport register access and the ni_pcimio driver uses memory mapped register access. The memory mapped base address is stored in the 'mite' pointer in the private data which is only allocated and initialized by the ni_pcimio driver. Detect the need for memory mapped register access by checking if the 'mite' pointer is set in the private data and remove the callbacks from 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>
Diffstat (limited to 'drivers/staging/comedi/drivers/ni_mio_cs.c')
-rw-r--r--drivers/staging/comedi/drivers/ni_mio_cs.c53
1 files changed, 7 insertions, 46 deletions
diff --git a/drivers/staging/comedi/drivers/ni_mio_cs.c b/drivers/staging/comedi/drivers/ni_mio_cs.c
index d61baffb4bf0..775b9d7dea5c 100644
--- a/drivers/staging/comedi/drivers/ni_mio_cs.c
+++ b/drivers/staging/comedi/drivers/ni_mio_cs.c
@@ -141,37 +141,7 @@ static const struct ni_board_struct ni_boards[] = {
#define IRQ_POLARITY 1
-/* How we access registers */
-
-static uint8_t mio_cs_inb(struct comedi_device *dev, int reg)
-{
- return inb(dev->iobase + reg);
-}
-
-static uint16_t mio_cs_inw(struct comedi_device *dev, int reg)
-{
- return inw(dev->iobase + reg);
-}
-
-static uint32_t mio_cs_inl(struct comedi_device *dev, int reg)
-{
- return inl(dev->iobase + reg);
-}
-
-static void mio_cs_outb(struct comedi_device *dev, uint8_t val, int reg)
-{
- outb(val, dev->iobase + reg);
-}
-
-static void mio_cs_outw(struct comedi_device *dev, uint16_t val, int reg)
-{
- outw(val, dev->iobase + reg);
-}
-
-static void mio_cs_outl(struct comedi_device *dev, uint32_t val, int reg)
-{
- outl(val, dev->iobase + reg);
-}
+#include "ni_mio_common.c"
/* How we access windowed registers */
@@ -186,10 +156,10 @@ static void mio_cs_win_out(struct comedi_device *dev, uint16_t data, int addr)
spin_lock_irqsave(&devpriv->window_lock, flags);
if (addr < 8) {
- devpriv->writew(dev, data, addr * 2);
+ ni_writew(dev, data, addr * 2);
} else {
- devpriv->writew(dev, addr, Window_Address);
- devpriv->writew(dev, data, Window_Data);
+ ni_writew(dev, addr, Window_Address);
+ ni_writew(dev, data, Window_Data);
}
spin_unlock_irqrestore(&devpriv->window_lock, flags);
}
@@ -202,18 +172,16 @@ static uint16_t mio_cs_win_in(struct comedi_device *dev, int addr)
spin_lock_irqsave(&devpriv->window_lock, flags);
if (addr < 8) {
- ret = devpriv->readw(dev, addr * 2);
+ ret = ni_readw(dev, addr * 2);
} else {
- devpriv->writew(dev, addr, Window_Address);
- ret = devpriv->readw(dev, Window_Data);
+ ni_writew(dev, addr, Window_Address);
+ ret = ni_readw(dev, Window_Data);
}
spin_unlock_irqrestore(&devpriv->window_lock, flags);
return ret;
}
-#include "ni_mio_common.c"
-
static const void *ni_getboardtype(struct comedi_device *dev,
struct pcmcia_device *link)
{
@@ -276,13 +244,6 @@ static int mio_cs_auto_attach(struct comedi_device *dev,
devpriv = dev->private;
- devpriv->readb = mio_cs_inb;
- devpriv->readw = mio_cs_inw;
- devpriv->readl = mio_cs_inl;
- devpriv->writeb = mio_cs_outb;
- devpriv->writew = mio_cs_outw;
- devpriv->writel = mio_cs_outl;
-
devpriv->stc_writew = mio_cs_win_out;
devpriv->stc_readw = mio_cs_win_in;
devpriv->stc_writel = win_out2;