summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/ni_atmio.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_atmio.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_atmio.c')
-rw-r--r--drivers/staging/comedi/drivers/ni_atmio.c53
1 files changed, 7 insertions, 46 deletions
diff --git a/drivers/staging/comedi/drivers/ni_atmio.c b/drivers/staging/comedi/drivers/ni_atmio.c
index ae9ace9ee99b..f0fb4a7b4a64 100644
--- a/drivers/staging/comedi/drivers/ni_atmio.c
+++ b/drivers/staging/comedi/drivers/ni_atmio.c
@@ -270,37 +270,7 @@ static const int ni_irqpin[] = {
#define NI_E_IRQ_FLAGS 0
-/* How we access registers */
-
-static uint8_t ni_atmio_inb(struct comedi_device *dev, int reg)
-{
- return inb(dev->iobase + reg);
-}
-
-static uint16_t ni_atmio_inw(struct comedi_device *dev, int reg)
-{
- return inw(dev->iobase + reg);
-}
-
-static uint32_t ni_atmio_inl(struct comedi_device *dev, int reg)
-{
- return inl(dev->iobase + reg);
-}
-
-static void ni_atmio_outb(struct comedi_device *dev, uint8_t val, int reg)
-{
- outb(val, dev->iobase + reg);
-}
-
-static void ni_atmio_outw(struct comedi_device *dev, uint16_t val, int reg)
-{
- outw(val, dev->iobase + reg);
-}
-
-static void ni_atmio_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 */
@@ -315,10 +285,10 @@ static void ni_atmio_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);
}
@@ -331,10 +301,10 @@ static uint16_t ni_atmio_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);
@@ -352,8 +322,6 @@ static struct pnp_device_id device_ids[] = {
MODULE_DEVICE_TABLE(pnp, device_ids);
-#include "ni_mio_common.c"
-
static int ni_isapnp_find_board(struct pnp_dev **dev)
{
struct pnp_dev *isapnp_dev = NULL;
@@ -428,13 +396,6 @@ static int ni_atmio_attach(struct comedi_device *dev,
return ret;
devpriv = dev->private;
- devpriv->readb = ni_atmio_inb;
- devpriv->readw = ni_atmio_inw;
- devpriv->readl = ni_atmio_inl;
- devpriv->writeb = ni_atmio_outb;
- devpriv->writew = ni_atmio_outw;
- devpriv->writel = ni_atmio_outl;
-
devpriv->stc_writew = ni_atmio_win_out;
devpriv->stc_readw = ni_atmio_win_in;
devpriv->stc_writel = win_out2;