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

staging: comedi: rti800: tidy up ai two's complement support

The analog input on this board can return data as either two's
complement or straight binary data. The format is selected by a
jumper of the board and enabled by the user as option[4] when
attaching to the board.

Replace the adc_coding enum with a simple bool to indicate that
the data is returned in two's complement form.
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 929b3432
...@@ -152,9 +152,7 @@ static const struct rti800_board rti800_boardtypes[] = { ...@@ -152,9 +152,7 @@ static const struct rti800_board rti800_boardtypes[] = {
}; };
struct rti800_private { struct rti800_private {
enum { bool adc_2comp;
adc_2comp, adc_straight
} adc_coding;
bool dac_2comp[2]; bool dac_2comp[2];
const struct comedi_lrange *ao_range_type_list[2]; const struct comedi_lrange *ao_range_type_list[2];
unsigned int ao_readback[2]; unsigned int ao_readback[2];
...@@ -221,7 +219,7 @@ static int rti800_ai_insn_read(struct comedi_device *dev, ...@@ -221,7 +219,7 @@ static int rti800_ai_insn_read(struct comedi_device *dev,
data[i] = inb(dev->iobase + RTI800_ADCLO); data[i] = inb(dev->iobase + RTI800_ADCLO);
data[i] |= (0xf & inb(dev->iobase + RTI800_ADCHI)) << 8; data[i] |= (0xf & inb(dev->iobase + RTI800_ADCHI)) << 8;
if (devpriv->adc_coding == adc_2comp) if (devpriv->adc_2comp)
data[i] ^= 0x800; data[i] ^= 0x800;
} }
...@@ -338,7 +336,7 @@ static int rti800_attach(struct comedi_device *dev, struct comedi_devconfig *it) ...@@ -338,7 +336,7 @@ static int rti800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return -ENOMEM; return -ENOMEM;
dev->private = devpriv; dev->private = devpriv;
devpriv->adc_coding = it->options[4]; devpriv->adc_2comp = (it->options[4] == 0);
devpriv->dac_2comp[0] = (it->options[6] == 0); devpriv->dac_2comp[0] = (it->options[6] == 0);
devpriv->dac_2comp[1] = (it->options[8] == 0); devpriv->dac_2comp[1] = (it->options[8] == 0);
/* invalid, forces the MUXGAIN register to be set when first used */ /* invalid, forces the MUXGAIN register to be set when first used */
......
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