staging: comedi: das16m1: use cfc_handle_events()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Sat, 8 Mar 2014 00:31:30 +0000 (17:31 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Mar 2014 20:55:54 +0000 (13:55 -0700)
Use the comedi_fc helper function to automatically call the subdevice
(*cancel) function when needed and call comedi_event().

In the Kconfig, COMEDI_DAS16M1 already selects COMEDI_FC.

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/das16m1.c

index 0a90ab341758a8903a049e2ee1666ec711ab1167..70aecbcb7c6d26aa61f2a39f719d3aa97dea5707 100644 (file)
@@ -449,8 +449,8 @@ static void das16m1_handler(struct comedi_device *dev, unsigned int status)
        devpriv->adc_count += num_samples;
 
        if (cmd->stop_src == TRIG_COUNT) {
-               if (devpriv->adc_count >= cmd->stop_arg * cmd->chanlist_len) {  /* end of acquisition */
-                       das16m1_cancel(dev, s);
+               if (devpriv->adc_count >= cmd->stop_arg * cmd->chanlist_len) {
+                       /* end of acquisition */
                        async->events |= COMEDI_CB_EOA;
                }
        }
@@ -458,13 +458,11 @@ static void das16m1_handler(struct comedi_device *dev, unsigned int status)
        /* this probably won't catch overruns since the card doesn't generate
         * overrun interrupts, but we might as well try */
        if (status & OVRUN) {
-               das16m1_cancel(dev, s);
                async->events |= COMEDI_CB_EOA | COMEDI_CB_ERROR;
                comedi_error(dev, "fifo overflow");
        }
 
-       comedi_event(dev, s);
-
+       cfc_handle_events(dev, s);
 }
 
 static int das16m1_poll(struct comedi_device *dev, struct comedi_subdevice *s)