Use comedi_handle_events() to automatically (*cancel) the async command for an end-of-acquisition or if an error/overflow occurs. Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c index 2950815..db6e142 100644 --- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c +++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c @@ -1329,15 +1329,14 @@ static void apci3120_interrupt_dma(int irq, void *d) if (!(cmd->flags & CMDF_WAKE_EOS)) { s->async->events |= COMEDI_CB_EOS; - comedi_event(dev, s); + comedi_handle_events(dev, s); } } if (cmd->stop_src == TRIG_COUNT) if (devpriv->ui_AiActualScan >= cmd->stop_arg) { /* all data sampled */ - apci3120_cancel(dev, s); s->async->events |= COMEDI_CB_EOA; - comedi_event(dev, s); + comedi_handle_events(dev, s); return; } @@ -1416,7 +1415,7 @@ static int apci3120_interrupt_handle_eos(struct comedi_device *dev) if (err == 0) s->async->events |= COMEDI_CB_OVERFLOW; - comedi_event(dev, s); + comedi_handle_events(dev, s); return 0; } @@ -1539,12 +1538,8 @@ static void apci3120_interrupt(int irq, void *d) outw(devpriv->us_OutputRegister, dev->iobase + APCI3120_WR_ADDRESS); - /* stop timer 0 and timer 1 */ - apci3120_cancel(dev, s); - - /* UPDATE-0.7.57->0.7.68comedi_done(dev,s); */ s->async->events |= COMEDI_CB_EOA; - comedi_event(dev, s); + comedi_handle_events(dev, s); break; -- 2.0.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel