Use the comedi_fc helper function to automatically call the subdevice (*cancel) function when needed and call comedi_event().
Update the Kconfig so that COMEDI_PCL816 selects COMEDI_FC. 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/Kconfig | 1 + drivers/staging/comedi/drivers/pcl816.c | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 627c67b..df7010b 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig @@ -189,6 +189,7 @@ config COMEDI_PCL812 config COMEDI_PCL816 tristate "Advantech PCL-814 and PCL-816 ISA card support" depends on VIRT_TO_BUS && ISA_DMA_API + select COMEDI_FC ---help--- Enable support for Advantech PCL-814 and PCL-816 ISA cards diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index 6386ef7..6f276f2 100644 --- a/drivers/staging/comedi/drivers/pcl816.c +++ b/drivers/staging/comedi/drivers/pcl816.c @@ -307,7 +307,6 @@ static bool pcl816_ai_next_chan(struct comedi_device *dev, if (cmd->stop_src == TRIG_COUNT && devpriv->ai_act_scan >= cmd->stop_arg) { /* all data sampled */ - s->cancel(dev, s); s->async->events |= COMEDI_CB_EOA; return false; } @@ -362,7 +361,7 @@ static irqreturn_t pcl816_interrupt(int irq, void *d) pcl816_ai_clear_eoc(dev); - comedi_event(dev, s); + cfc_handle_events(dev, s); return IRQ_HANDLED; } @@ -520,7 +519,7 @@ static int pcl816_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s) devpriv->ai_poll_ptr = top1; /* new buffer position */ spin_unlock_irqrestore(&dev->spinlock, flags); - comedi_event(dev, s); + cfc_handle_events(dev, s); return s->async->buf_write_count - s->async->buf_read_count; } -- 1.8.5.2 _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel