Commit 1c4babb2 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: pcl711: fix software trigger for board->is_8112

The acl-8112 boards also need to write a value to the software
trigger register in order to start an A/D conversion. Remove the
if (!board->is_8112) test so that the write is always done.

Also, the analog input mode does not need to be set each time for
multiple samples. Move the pcl711_ai_set_mode() out of the for loop.
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 075eaef8
...@@ -91,7 +91,8 @@ supported. ...@@ -91,7 +91,8 @@ supported.
#define PCL711_MODE_PACER (4 << 0) #define PCL711_MODE_PACER (4 << 0)
#define PCL711_MODE_PACER_IRQ (6 << 0) #define PCL711_MODE_PACER_IRQ (6 << 0)
#define PCL711_MODE_IRQ(x) (((x) & 0x7) << 4) #define PCL711_MODE_IRQ(x) (((x) & 0x7) << 4)
#define PCL711_SOFTTRIG 0x0c #define PCL711_SOFTTRIG_REG 0x0c
#define PCL711_SOFTTRIG (0 << 0) /* any value will work */
#define PCL711_DO_LO 0x0d #define PCL711_DO_LO 0x0d
#define PCL711_DO_HI 0x0e #define PCL711_DO_HI 0x0e
...@@ -280,17 +281,15 @@ static int pcl711_ai_wait_for_eoc(struct comedi_device *dev, ...@@ -280,17 +281,15 @@ static int pcl711_ai_wait_for_eoc(struct comedi_device *dev,
static int pcl711_ai_insn(struct comedi_device *dev, struct comedi_subdevice *s, static int pcl711_ai_insn(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data) struct comedi_insn *insn, unsigned int *data)
{ {
const struct pcl711_board *board = comedi_board(dev);
int ret; int ret;
int n; int n;
pcl711_set_changain(dev, insn->chanspec); pcl711_set_changain(dev, insn->chanspec);
for (n = 0; n < insn->n; n++) {
pcl711_ai_set_mode(dev, PCL711_MODE_SOFTTRIG); pcl711_ai_set_mode(dev, PCL711_MODE_SOFTTRIG);
if (!board->is_8112) for (n = 0; n < insn->n; n++) {
outb(0, dev->iobase + PCL711_SOFTTRIG); outb(PCL711_SOFTTRIG, dev->iobase + PCL711_SOFTTRIG_REG);
ret = pcl711_ai_wait_for_eoc(dev, 100); ret = pcl711_ai_wait_for_eoc(dev, 100);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment