Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 365dae93 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bc43ae06
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -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)