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

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

staging: comedi: ni_labpc: use comedi_timeout()



Use comedi_timeout() to wait for the analog input end-of-conversion.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent acb069c0
Loading
Loading
Loading
Loading
+9 −12
Original line number Original line Diff line number Diff line
@@ -73,7 +73,6 @@
#include "ni_labpc_isadma.h"
#include "ni_labpc_isadma.h"


#define LABPC_SIZE		0x20	/* size of ISA io region */
#define LABPC_SIZE		0x20	/* size of ISA io region */
#define LABPC_ADC_TIMEOUT	1000


enum scan_mode {
enum scan_mode {
	MODE_SINGLE_CHAN,
	MODE_SINGLE_CHAN,
@@ -308,19 +307,17 @@ static void labpc_clear_adc_fifo(struct comedi_device *dev)
	labpc_read_adc_fifo(dev);
	labpc_read_adc_fifo(dev);
}
}


static int labpc_ai_wait_for_data(struct comedi_device *dev,
static int labpc_ai_eoc(struct comedi_device *dev,
				  int timeout)
			struct comedi_subdevice *s,
			struct comedi_insn *insn,
			unsigned long context)
{
{
	struct labpc_private *devpriv = dev->private;
	struct labpc_private *devpriv = dev->private;
	int i;


	for (i = 0; i < timeout; i++) {
	devpriv->stat1 = devpriv->read_byte(dev->iobase + STAT1_REG);
	devpriv->stat1 = devpriv->read_byte(dev->iobase + STAT1_REG);
	if (devpriv->stat1 & STAT1_DAVAIL)
	if (devpriv->stat1 & STAT1_DAVAIL)
		return 0;
		return 0;
		udelay(1);
	return -EBUSY;
	}
	return -ETIME;
}
}


static int labpc_ai_insn_read(struct comedi_device *dev,
static int labpc_ai_insn_read(struct comedi_device *dev,
@@ -363,7 +360,7 @@ static int labpc_ai_insn_read(struct comedi_device *dev,
		/* trigger conversion */
		/* trigger conversion */
		devpriv->write_byte(0x1, dev->iobase + ADC_START_CONVERT_REG);
		devpriv->write_byte(0x1, dev->iobase + ADC_START_CONVERT_REG);


		ret = labpc_ai_wait_for_data(dev, LABPC_ADC_TIMEOUT);
		ret = comedi_timeout(dev, s, insn, labpc_ai_eoc, 0);
		if (ret)
		if (ret)
			return ret;
			return ret;