[PATCH 1/3] staging: comedi: pcl711: add AI cancel handler

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

 



Comedi subdevices that support asynchronous commands should have a
'cancel' handler to stop an in-progress command.  Add such a handler to
the pcl711 driver module.  I think merely setting the acquisition mode
to "software-triggered" would be sufficient, but also clear the
interrupt status for good luck.

Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx>
---
 drivers/staging/comedi/drivers/pcl711.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/staging/comedi/drivers/pcl711.c b/drivers/staging/comedi/drivers/pcl711.c
index eb800be..939a11f 100644
--- a/drivers/staging/comedi/drivers/pcl711.c
+++ b/drivers/staging/comedi/drivers/pcl711.c
@@ -189,6 +189,14 @@ static unsigned int pcl711_ai_get_sample(struct comedi_device *dev,
 	return val & s->maxdata;
 }
 
+static int pcl711_ai_cancel(struct comedi_device *dev,
+			    struct comedi_subdevice *s)
+{
+	outb(PCL711_INT_STAT_CLR, dev->iobase + PCL711_INT_STAT_REG);
+	pcl711_ai_set_mode(dev, PCL711_MODE_SOFTTRIG);
+	return 0;
+}
+
 static irqreturn_t pcl711_interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
@@ -493,6 +501,7 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 		s->len_chanlist	= 1;
 		s->do_cmdtest	= pcl711_ai_cmdtest;
 		s->do_cmd	= pcl711_ai_cmd;
+		s->cancel	= pcl711_ai_cancel;
 	}
 
 	/* Analog Output subdevice */
-- 
1.8.3.2

_______________________________________________
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