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>
This commit is contained in:
parent
bc43ae0662
commit
365dae93f7
1 changed files with 2 additions and 12 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue