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

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

staging: comedi: cb_pcidas: use comedi_buf_write_samples()



Use comedi_buf_write_samples() to add the samples to the async buffer.
That function will handle single and multi samples writes by determining
the number of bytes to add based on the number of samples and the
bytes_per_sample().

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 880f5820
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -1359,8 +1359,7 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d)
		}
		}
		insw(devpriv->adc_fifo + ADCDATA, devpriv->ai_buffer,
		insw(devpriv->adc_fifo + ADCDATA, devpriv->ai_buffer,
		     num_samples);
		     num_samples);
		cfc_write_array_to_buffer(s, devpriv->ai_buffer,
		comedi_buf_write_samples(s, devpriv->ai_buffer, num_samples);
					  num_samples * sizeof(short));
		devpriv->count -= num_samples;
		devpriv->count -= num_samples;
		if (cmd->stop_src == TRIG_COUNT && devpriv->count == 0)
		if (cmd->stop_src == TRIG_COUNT && devpriv->count == 0)
			async->events |= COMEDI_CB_EOA;
			async->events |= COMEDI_CB_EOA;
@@ -1372,11 +1371,14 @@ static irqreturn_t cb_pcidas_interrupt(int irq, void *d)
		/*  else if fifo not empty */
		/*  else if fifo not empty */
	} else if (status & (ADNEI | EOBI)) {
	} else if (status & (ADNEI | EOBI)) {
		for (i = 0; i < timeout; i++) {
		for (i = 0; i < timeout; i++) {
			unsigned short val;

			/*  break if fifo is empty */
			/*  break if fifo is empty */
			if ((ADNE & inw(devpriv->control_status +
			if ((ADNE & inw(devpriv->control_status +
					INT_ADCFIFO)) == 0)
					INT_ADCFIFO)) == 0)
				break;
				break;
			cfc_write_to_buffer(s, inw(devpriv->adc_fifo));
			val = inw(devpriv->adc_fifo);
			comedi_buf_write_samples(s, &val, 1);
			if (cmd->stop_src == TRIG_COUNT &&
			if (cmd->stop_src == TRIG_COUNT &&
			    --devpriv->count == 0) {
			    --devpriv->count == 0) {
				/* end of acquisition */
				/* end of acquisition */