[PATCH 36/42] staging: comedi: ni_660x: default DIO channels with subdevice init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For aesthetics, move the initialization of the default routing for the
DIO channels so it happens when the subdevice is initialized.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/staging/comedi/drivers/ni_660x.c | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/comedi/drivers/ni_660x.c b/drivers/staging/comedi/drivers/ni_660x.c
index 5969723..cf25892 100644
--- a/drivers/staging/comedi/drivers/ni_660x.c
+++ b/drivers/staging/comedi/drivers/ni_660x.c
@@ -996,6 +996,19 @@ static int ni_660x_auto_attach(struct comedi_device *dev,
 	s->insn_bits	= ni_660x_dio_insn_bits;
 	s->insn_config	= ni_660x_dio_insn_config;
 
+	 /*
+	  * Default the DIO channels as:
+	  *   chan 0-7:  DIO inputs
+	  *   chan 8-39: counter signal inputs
+	  */
+	for (i = 0; i < s->n_chan; ++i) {
+		unsigned int source = (i < 8) ? NI_660X_PFI_OUTPUT_DIO
+					      : NI_660X_PFI_OUTPUT_COUNTER;
+
+		ni_660x_set_pfi_routing(dev, i, source);
+		ni_660x_select_pfi_output(dev, i, 0);		/* high-z */
+	}
+
 	/* Counter subdevices (4 NI TIO General Purpose Counters per chip) */
 	for (i = 0; i < NI660X_MAX_COUNTERS; ++i) {
 		s = &dev->subdevices[subdev++];
@@ -1028,20 +1041,6 @@ static int ni_660x_auto_attach(struct comedi_device *dev,
 		}
 	}
 
-	 /*
-	  * Default the DIO channels as:
-	  *   chan 0-7:  DIO inputs
-	  *   chan 8-39: counter signal inputs
-	  */
-	for (i = 0; i < NI660X_NUM_PFI_CHANNELS; ++i) {
-		if (i < 8)
-			ni_660x_set_pfi_routing(dev, i, NI_660X_PFI_OUTPUT_DIO);
-		else
-			ni_660x_set_pfi_routing(dev, i,
-						NI_660X_PFI_OUTPUT_COUNTER);
-		ni_660x_select_pfi_output(dev, i, 0);		/* high-z */
-	}
-
 	/*
 	 * To be safe, set counterswap bits on tio chips after all the counter
 	 * outputs have been set to high impedance mode.
-- 
2.6.3

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



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux