[PATCH v2 18/18] staging: comedi: ni_65xx: factor input filter disable out of (*auto_attach)

H Hartley Sweeten hsweeten at visionengravers.com
Mon Jul 14 19:07:08 UTC 2014


For aesthetics, factor the code that disables the input filters out of
ni_65xx_auto_attach().

Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Reviewed-by: Ian Abbott <abbotti at mev.co.uk>
Cc: Greg Kroah-Hartman <gregk at linuxfoundation.org>
---
 drivers/staging/comedi/drivers/ni_65xx.c | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/comedi/drivers/ni_65xx.c b/drivers/staging/comedi/drivers/ni_65xx.c
index a0deb01..cad2c28 100644
--- a/drivers/staging/comedi/drivers/ni_65xx.c
+++ b/drivers/staging/comedi/drivers/ni_65xx.c
@@ -278,16 +278,29 @@ static const struct ni_65xx_board ni_65xx_boards[] = {
 	},
 };
 
-static inline unsigned ni_65xx_total_num_ports(const struct ni_65xx_board
-					       *board)
-{
-	return board->num_dio_ports + board->num_di_ports + board->num_do_ports;
-}
-
 struct ni_65xx_private {
 	void __iomem *mmio;
 };
 
+static void ni_65xx_disable_input_filters(struct comedi_device *dev)
+{
+	const struct ni_65xx_board *board = comedi_board(dev);
+	struct ni_65xx_private *devpriv = dev->private;
+	unsigned num_ports;
+	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));
+
+	/* set filter interval to 0 (32bit reg) */
+	writel(0x00000000, devpriv->mmio + NI_65XX_FILTER_REG);
+}
+
 static int ni_65xx_dio_insn_config(struct comedi_device *dev,
 				   struct comedi_subdevice *s,
 				   struct comedi_insn *insn,
@@ -709,11 +722,7 @@ static int ni_65xx_auto_attach(struct comedi_device *dev,
 		s->cancel	= ni_65xx_intr_cancel;
 	}
 
-	for (i = 0; i < ni_65xx_total_num_ports(board); ++i)
-		writeb(0x00, devpriv->mmio + NI_65XX_FILTER_ENA(i));
-
-	/* Set filter interval to 0  (32bit reg) */
-	writel(0x00000000, devpriv->mmio + NI_65XX_FILTER_REG);
+	ni_65xx_disable_input_filters(dev);
 
 	return 0;
 }
-- 
1.9.3



More information about the devel mailing list