From: H Hartley Sweeten <hartl...@visionengravers.com>

This helper function is used to OR bits with a software copy of a
register value then writel() the new value to the register. The
software copies are never updated in the driver so they are always
0 due to the kzalloc.

Remove the unnecessary 'bits' from the private data and replace
the hpdi_writel() calls with writel().

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/gsc_hpdi.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c 
b/drivers/staging/comedi/drivers/gsc_hpdi.c
index 3762510..aaf6283 100644
--- a/drivers/staging/comedi/drivers/gsc_hpdi.c
+++ b/drivers/staging/comedi/drivers/gsc_hpdi.c
@@ -203,21 +203,10 @@ struct hpdi_private {
        unsigned int tx_fifo_size;
        unsigned int rx_fifo_size;
        volatile unsigned long dio_count;
-       /* software copies of values written to hpdi registers */
-       volatile uint32_t bits[24];
        /* number of bytes at which to generate COMEDI_CB_BLOCK events */
        volatile unsigned int block_size;
 };
 
-static inline void hpdi_writel(struct comedi_device *dev, uint32_t bits,
-                              unsigned int offset)
-{
-       struct hpdi_private *devpriv = dev->private;
-
-       writel(bits | devpriv->bits[offset / sizeof(uint32_t)],
-              devpriv->hpdi_iobase + offset);
-}
-
 static void gsc_hpdi_drain_dma(struct comedi_device *dev, unsigned int channel)
 {
        struct hpdi_private *devpriv = dev->private;
@@ -350,8 +339,7 @@ static int gsc_hpdi_cancel(struct comedi_device *dev,
 {
        struct hpdi_private *devpriv = dev->private;
 
-       hpdi_writel(dev, 0, BOARD_CONTROL_REG);
-
+       writel(0, devpriv->hpdi_iobase + BOARD_CONTROL_REG);
        writel(0, devpriv->hpdi_iobase + INTERRUPT_CONTROL_REG);
 
        gsc_hpdi_abort_dma(dev, 0);
@@ -371,7 +359,7 @@ static int gsc_hpdi_cmd(struct comedi_device *dev,
        if (s->io_bits)
                return -EINVAL;
 
-       hpdi_writel(dev, RX_FIFO_RESET_BIT, BOARD_CONTROL_REG);
+       writel(RX_FIFO_RESET_BIT, devpriv->hpdi_iobase + BOARD_CONTROL_REG);
 
        gsc_hpdi_abort_dma(dev, 0);
 
@@ -411,7 +399,7 @@ static int gsc_hpdi_cmd(struct comedi_device *dev,
        writel(intr_bit(RX_FULL_INTR),
               devpriv->hpdi_iobase + INTERRUPT_CONTROL_REG);
 
-       hpdi_writel(dev, RX_ENABLE_BIT, BOARD_CONTROL_REG);
+       writel(RX_ENABLE_BIT, devpriv->hpdi_iobase + BOARD_CONTROL_REG);
 
        return 0;
 }
-- 
1.8.5.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to