[PATCH 059/108] staging: comedi: addi_apci_3120: move apci3120_ai_insn_read() to driver source

H Hartley Sweeten hsweeten at visionengravers.com
Tue Nov 4 17:54:43 UTC 2014


Move this function, and its helper function, from the included hwdrv_apci31210.c
source file to the main driver source file.

Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Cc: Ian Abbott <abbotti at mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
 .../comedi/drivers/addi-data/hwdrv_apci3120.c      | 60 ----------------------
 drivers/staging/comedi/drivers/addi_apci_3120.c    | 60 ++++++++++++++++++++++
 2 files changed, 60 insertions(+), 60 deletions(-)

diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c
index 929ef0b..28c5792 100644
--- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c
+++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c
@@ -131,66 +131,6 @@ static int apci3120_setup_chan_list(struct comedi_device *dev,
 	return 1;		/*  we can serve this with scan logic */
 }
 
-static int apci3120_ai_eoc(struct comedi_device *dev,
-			   struct comedi_subdevice *s,
-			   struct comedi_insn *insn,
-			   unsigned long context)
-{
-	unsigned int status;
-
-	status = inw(dev->iobase + APCI3120_STATUS_REG);
-	if ((status & APCI3120_STATUS_EOC_INT) == 0)
-		return 0;
-	return -EBUSY;
-}
-
-static int apci3120_ai_insn_read(struct comedi_device *dev,
-				 struct comedi_subdevice *s,
-				 struct comedi_insn *insn,
-				 unsigned int *data)
-{
-	struct apci3120_private *devpriv = dev->private;
-	unsigned int divisor;
-	int ret;
-	int i;
-
-	/* set mode for A/D conversions by software trigger with timer 0 */
-	devpriv->mode = APCI3120_MODE_TIMER2_CLK_OSC |
-			APCI3120_MODE_TIMER2_AS_TIMER;
-	outb(devpriv->mode, dev->iobase + APCI3120_MODE_REG);
-
-	/* load chanlist for single channel scan */
-	if (!apci3120_setup_chan_list(dev, s, 1, &insn->chanspec))
-		return -EINVAL;
-
-	/*
-	 * Timer 0 is used in MODE4 (software triggered strobe) to set the
-	 * conversion time for each acquisition. Each conversion is triggered
-	 * when the divisor is written to the timer, The conversion is done
-	 * when the EOC bit in the status register is '0'.
-	 */
-	apci3120_timer_set_mode(dev, 0, APCI3120_TIMER_MODE4);
-	apci3120_timer_enable(dev, 0, true);
-
-	/* fixed conversion time of 10 us */
-	divisor = apci3120_ns_to_timer(dev, 0, 10000, CMDF_ROUND_NEAREST);
-
-	apci3120_ai_reset_fifo(dev);
-
-	for (i = 0; i < insn->n; i++) {
-		/* trigger conversion */
-		apci3120_timer_write(dev, 0, divisor);
-
-		ret = comedi_timeout(dev, s, insn, apci3120_ai_eoc, 0);
-		if (ret)
-			return ret;
-
-		data[i] = inw(dev->iobase + 0);
-	}
-
-	return insn->n;
-}
-
 static int apci3120_reset(struct comedi_device *dev)
 {
 	struct apci3120_private *devpriv = dev->private;
diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c
index c17a840..70363fa 100644
--- a/drivers/staging/comedi/drivers/addi_apci_3120.c
+++ b/drivers/staging/comedi/drivers/addi_apci_3120.c
@@ -281,6 +281,66 @@ static void apci3120_ai_reset_fifo(struct comedi_device *dev)
 
 #include "addi-data/hwdrv_apci3120.c"
 
+static int apci3120_ai_eoc(struct comedi_device *dev,
+			   struct comedi_subdevice *s,
+			   struct comedi_insn *insn,
+			   unsigned long context)
+{
+	unsigned int status;
+
+	status = inw(dev->iobase + APCI3120_STATUS_REG);
+	if ((status & APCI3120_STATUS_EOC_INT) == 0)
+		return 0;
+	return -EBUSY;
+}
+
+static int apci3120_ai_insn_read(struct comedi_device *dev,
+				 struct comedi_subdevice *s,
+				 struct comedi_insn *insn,
+				 unsigned int *data)
+{
+	struct apci3120_private *devpriv = dev->private;
+	unsigned int divisor;
+	int ret;
+	int i;
+
+	/* set mode for A/D conversions by software trigger with timer 0 */
+	devpriv->mode = APCI3120_MODE_TIMER2_CLK_OSC |
+			APCI3120_MODE_TIMER2_AS_TIMER;
+	outb(devpriv->mode, dev->iobase + APCI3120_MODE_REG);
+
+	/* load chanlist for single channel scan */
+	if (!apci3120_setup_chan_list(dev, s, 1, &insn->chanspec))
+		return -EINVAL;
+
+	/*
+	 * Timer 0 is used in MODE4 (software triggered strobe) to set the
+	 * conversion time for each acquisition. Each conversion is triggered
+	 * when the divisor is written to the timer, The conversion is done
+	 * when the EOC bit in the status register is '0'.
+	 */
+	apci3120_timer_set_mode(dev, 0, APCI3120_TIMER_MODE4);
+	apci3120_timer_enable(dev, 0, true);
+
+	/* fixed conversion time of 10 us */
+	divisor = apci3120_ns_to_timer(dev, 0, 10000, CMDF_ROUND_NEAREST);
+
+	apci3120_ai_reset_fifo(dev);
+
+	for (i = 0; i < insn->n; i++) {
+		/* trigger conversion */
+		apci3120_timer_write(dev, 0, divisor);
+
+		ret = comedi_timeout(dev, s, insn, apci3120_ai_eoc, 0);
+		if (ret)
+			return ret;
+
+		data[i] = inw(dev->iobase + 0);
+	}
+
+	return insn->n;
+}
+
 static int apci3120_ao_ready(struct comedi_device *dev,
 			     struct comedi_subdevice *s,
 			     struct comedi_insn *insn,
-- 
2.0.3



More information about the devel mailing list