From adbc9ec7fe38baa8af2a3d21e3f505c8a8da7c3b Mon Sep 17 00:00:00 2001
From: H Hartley Sweeten <hsweeten@visionengravers.com>
Date: Fri, 13 Nov 2015 11:11:21 -0700
Subject: [PATCH] staging: comedi: adv_pci1710: ai (*cancel) should not enable
 software trigger

The (*cancel) operation should do just that. Remove the setting of the SW bit
which enables the software trigger.

For aesthetics, rename the function so it has namespace associated with the
driver and add a couple comments.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/adv_pci1710.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c
index e36b54045eb4..737d40867d3b 100644
--- a/drivers/staging/comedi/drivers/adv_pci1710.c
+++ b/drivers/staging/comedi/drivers/adv_pci1710.c
@@ -365,16 +365,19 @@ static int pci171x_ai_insn_read(struct comedi_device *dev,
 	return ret ? ret : insn->n;
 }
 
-static int pci171x_ai_cancel(struct comedi_device *dev,
+static int pci1710_ai_cancel(struct comedi_device *dev,
 			     struct comedi_subdevice *s)
 {
 	struct pci1710_private *devpriv = dev->private;
 
-	devpriv->ctrl &= PCI171X_CTRL_CNT0;
-	devpriv->ctrl |= PCI171X_CTRL_SW;
-	/* reset any operations */
+	/* disable A/D triggers and interrupt sources */
+	devpriv->ctrl &= PCI171X_CTRL_CNT0;	/* preserve counter 0 clk src */
 	outw(devpriv->ctrl, dev->iobase + PCI171X_CTRL_REG);
+
+	/* disable pacer */
 	comedi_8254_pacer_enable(dev->pacer, 1, 2, false);
+
+	/* clear A/D FIFO and any pending interrutps */
 	outb(0, dev->iobase + PCI171X_CLRFIFO_REG);
 	outb(0, dev->iobase + PCI171X_CLRINT_REG);
 
@@ -806,7 +809,7 @@ static int pci1710_auto_attach(struct comedi_device *dev,
 		s->len_chanlist	= s->n_chan;
 		s->do_cmdtest	= pci171x_ai_cmdtest;
 		s->do_cmd	= pci171x_ai_cmd;
-		s->cancel	= pci171x_ai_cancel;
+		s->cancel	= pci1710_ai_cancel;
 	}
 
 	/* find the value needed to adjust for unipolar gain codes */
-- 
2.30.9