staging: comedi: ni_65xx: add ni_65xx_num_ports()
authorIan Abbott <abbotti@mev.co.uk>
Wed, 23 Jul 2014 09:41:18 +0000 (10:41 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jul 2014 22:01:24 +0000 (15:01 -0700)
Add a function to return the total number of digital I/O, digital input,
and digital output ports on the board.  Each port has 8 channels (bits).

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_65xx.c

index aba6fbbe340aa90b7ddaad7535c76a1a956f6687..0f9185ebda66182c6014befe4da786c26db0fa17 100644 (file)
@@ -296,17 +296,19 @@ struct ni_65xx_private {
        void __iomem *mmio;
 };
 
-static void ni_65xx_disable_input_filters(struct comedi_device *dev)
+static unsigned int ni_65xx_num_ports(struct comedi_device *dev)
 {
        const struct ni_65xx_board *board = comedi_board(dev);
+
+       return board->num_dio_ports + board->num_di_ports + board->num_do_ports;
+}
+
+static void ni_65xx_disable_input_filters(struct comedi_device *dev)
+{
        struct ni_65xx_private *devpriv = dev->private;
-       unsigned num_ports;
+       unsigned int num_ports = ni_65xx_num_ports(dev);
        int i;
 
-       num_ports = board->num_dio_ports +
-                   board->num_di_ports +
-                   board->num_do_ports;
-
        /* disable input filtering on all ports */
        for (i = 0; i < num_ports; ++i)
                writeb(0x00, devpriv->mmio + NI_65XX_FILTER_ENA(i));