staging: comedi: hwdrv_apci3120: do comedi_handle_events() at end of interrupt
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 18 Sep 2014 18:35:31 +0000 (11:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Oct 2014 02:29:23 +0000 (10:29 +0800)
Currently comedi_handle_events() is done by both the DMA and non-DMA helper
functions that are called by the interrupt handler. For aesthetics, move
the comedi_handle_events() to the end of the interrupt handler and do it in
one place.

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/addi-data/hwdrv_apci3120.c

index db6e14269c92a67a9de61fcae4de9ad335573c7b..b06142b27df7ced46526d05b259c9c83a0b500c7 100644 (file)
@@ -1327,16 +1327,13 @@ static void apci3120_interrupt_dma(int irq, void *d)
                        devpriv->ul_DmaBufferVirtual[devpriv->
                                ui_DmaActualBuffer], samplesinbuf);
 
-               if (!(cmd->flags & CMDF_WAKE_EOS)) {
+               if (!(cmd->flags & CMDF_WAKE_EOS))
                        s->async->events |= COMEDI_CB_EOS;
-                       comedi_handle_events(dev, s);
-               }
        }
        if (cmd->stop_src == TRIG_COUNT)
                if (devpriv->ui_AiActualScan >= cmd->stop_arg) {
                        /*  all data sampled */
                        s->async->events |= COMEDI_CB_EOA;
-                       comedi_handle_events(dev, s);
                        return;
                }
 
@@ -1415,8 +1412,6 @@ static int apci3120_interrupt_handle_eos(struct comedi_device *dev)
        if (err == 0)
                s->async->events |= COMEDI_CB_OVERFLOW;
 
-       comedi_handle_events(dev, s);
-
        return 0;
 }
 
@@ -1539,8 +1534,6 @@ static void apci3120_interrupt(int irq, void *d)
                                dev->iobase + APCI3120_WR_ADDRESS);
 
                        s->async->events |= COMEDI_CB_EOA;
-                       comedi_handle_events(dev, s);
-
                        break;
 
                case APCI3120_TIMER:
@@ -1593,6 +1586,7 @@ static void apci3120_interrupt(int irq, void *d)
                }
 
        }
+       comedi_handle_events(dev, s);
 }
 
 /*