diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2014-06-19 10:20:36 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-06-19 13:11:33 -0700 |
commit | ac63baf5517cb7c22d63e2c5d269994f3002c7e0 (patch) | |
tree | 6cda49e11a12d02d73fc0861ea66dedeab87efd1 /drivers/staging/comedi/drivers/ni_atmio.c | |
parent | 5a92cac5dc3b48a4ae176045e1f13ecde5a7b586 (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.c | 53 |
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; |