aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/s626.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2014-09-18 11:35:39 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-10-20 10:29:24 +0800
commit365dae93f72fdb281cf04cc43b93d4e044f3c70d (patch)
tree0c3a7d8abb4ced964a1f72348b72abce8c9de331 /drivers/staging/comedi/drivers/s626.c
parentstaging: comedi: pcmuio: use comedi_handle_events() (diff)
downloadlinux-dev-365dae93f72fdb281cf04cc43b93d4e044f3c70d.tar.xz
linux-dev-365dae93f72fdb281cf04cc43b93d4e044f3c70d.zip
staging: comedi: s626: use comedi_handle_events()
Use comedi_handle_events() to automatically (*cancel) the async command for an end-of-acquisition or if an error/overflow occurs. The s626_mc_disable() call when the end-of-acquisition is detected can then be removed. The (*cancel) does the same thing. For aesthetics, also remove the 'finished' local variable and just return the ai_cmd_running state. 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>
Diffstat (limited to 'drivers/staging/comedi/drivers/s626.c')
-rw-r--r--drivers/staging/comedi/drivers/s626.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c
index 11a12d787e4c..efd438f0ca62 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -1480,7 +1480,6 @@ static bool s626_handle_eos_interrupt(struct comedi_device *dev)
* from the final ADC of the previous poll list scan.
*/
uint32_t *readaddr = (uint32_t *)devpriv->ana_buf.logical_base + 1;
- bool finished = false;
int i;
/* get the data and hand it over to comedi */
@@ -1505,25 +1504,16 @@ static bool s626_handle_eos_interrupt(struct comedi_device *dev)
devpriv->ai_sample_count--;
if (devpriv->ai_sample_count <= 0) {
devpriv->ai_cmd_running = 0;
-
- /* Stop RPS program */
- s626_mc_disable(dev, S626_MC1_ERPS1, S626_P_MC1);
-
- /* send end of acquisition */
async->events |= COMEDI_CB_EOA;
-
- /* disable master interrupt */
- finished = true;
}
}
if (devpriv->ai_cmd_running && cmd->scan_begin_src == TRIG_EXT)
s626_dio_set_irq(dev, cmd->scan_begin_arg);
- /* tell comedi that data is there */
- comedi_event(dev, s);
+ comedi_handle_events(dev, s);
- return finished;
+ return !devpriv->ai_cmd_running;
}
static irqreturn_t s626_irq_handler(int irq, void *d)