Use comedi_handle_events() to automatically (*cancel) the async command
for an end-of-acquisition or if an error/overflow occurs.

For aesthetics, add a local variable for the comedi_subdevice pointer.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/comedi_test.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/comedi/drivers/comedi_test.c 
b/drivers/staging/comedi/drivers/comedi_test.c
index 00c03df..8845075 100644
--- a/drivers/staging/comedi/drivers/comedi_test.c
+++ b/drivers/staging/comedi/drivers/comedi_test.c
@@ -164,7 +164,8 @@ static void waveform_ai_interrupt(unsigned long arg)
 {
        struct comedi_device *dev = (struct comedi_device *)arg;
        struct waveform_private *devpriv = dev->private;
-       struct comedi_async *async = dev->read_subdev->async;
+       struct comedi_subdevice *s = dev->read_subdev;
+       struct comedi_async *async = s->async;
        struct comedi_cmd *cmd = &async->cmd;
        unsigned int i, j;
        /* all times in microsec */
@@ -203,7 +204,7 @@ static void waveform_ai_interrupt(unsigned long arg)
                                               devpriv->usec_current +
                                                   i * devpriv->scan_period +
                                                   j * devpriv->convert_period);
-                       cfc_write_to_buffer(dev->read_subdev, sample);
+                       cfc_write_to_buffer(s, sample);
                }
        }
 
@@ -216,7 +217,7 @@ static void waveform_ai_interrupt(unsigned long arg)
        else
                mod_timer(&devpriv->timer, jiffies + 1);
 
-       comedi_event(dev, dev->read_subdev);
+       comedi_handle_events(dev, s);
 }
 
 static int waveform_ai_cmdtest(struct comedi_device *dev,
-- 
2.0.3

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

Reply via email to