staging: comedi: amplc_pci224: use cfc_handle_events()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Sat, 8 Mar 2014 00:31:36 +0000 (17:31 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Mar 2014 20:55:55 +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_AMPLC_PCI224 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/amplc_pci224.c

index 8be36b8afbdfc29597343489c766f8941b68d713..29e01e280039d2c0519a52baaab16db15aaae4bb 100644 (file)
@@ -533,9 +533,8 @@ static void pci224_ao_start(struct comedi_device *dev,
        set_bit(AO_CMD_STARTED, &devpriv->state);
        if (!devpriv->ao_stop_continuous && devpriv->ao_stop_count == 0) {
                /* An empty acquisition! */
-               pci224_ao_stop(dev, s);
                s->async->events |= COMEDI_CB_EOA;
-               comedi_event(dev, s);
+               cfc_handle_events(dev, s);
        } else {
                /* Enable interrupts. */
                spin_lock_irqsave(&devpriv->ao_spinlock, flags);
@@ -585,9 +584,8 @@ static void pci224_ao_handle_fifo(struct comedi_device *dev,
                room = PCI224_FIFO_ROOM_EMPTY;
                if (!devpriv->ao_stop_continuous && devpriv->ao_stop_count == 0) {
                        /* FIFO empty at end of counted acquisition. */
-                       pci224_ao_stop(dev, s);
                        s->async->events |= COMEDI_CB_EOA;
-                       comedi_event(dev, s);
+                       cfc_handle_events(dev, s);
                        return;
                }
                break;
@@ -605,9 +603,8 @@ static void pci224_ao_handle_fifo(struct comedi_device *dev,
                /* FIFO is less than half-full. */
                if (num_scans == 0) {
                        /* Nothing left to put in the FIFO. */
-                       pci224_ao_stop(dev, s);
-                       s->async->events |= COMEDI_CB_OVERFLOW;
                        dev_err(dev->class_dev, "AO buffer underrun\n");
+                       s->async->events |= COMEDI_CB_OVERFLOW;
                }
        }
        /* Determine how many new scans can be put in the FIFO. */
@@ -670,9 +667,8 @@ static void pci224_ao_handle_fifo(struct comedi_device *dev,
                                          PCI224_DACCON_TRIG_MASK);
                outw(devpriv->daccon, dev->iobase + PCI224_DACCON);
        }
-       if (s->async->events)
-               comedi_event(dev, s);
 
+       cfc_handle_events(dev, s);
 }
 
 /*
This page took 0.027736 seconds and 5 git commands to generate.