Skip to content

Commit

Permalink
staging: comedi: rti800: tidy up ai two's complement support
Browse files Browse the repository at this point in the history
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: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Apr 9, 2013
1 parent 929b343 commit c7c1161
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions drivers/staging/comedi/drivers/rti800.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,9 +152,7 @@ static const struct rti800_board rti800_boardtypes[] = {
};

struct rti800_private {
enum {
adc_2comp, adc_straight
} adc_coding;
bool adc_2comp;
bool dac_2comp[2];
const struct comedi_lrange *ao_range_type_list[2];
unsigned int ao_readback[2];
Expand Down Expand Up @@ -221,7 +219,7 @@ static int rti800_ai_insn_read(struct comedi_device *dev,
data[i] = inb(dev->iobase + RTI800_ADCLO);
data[i] |= (0xf & inb(dev->iobase + RTI800_ADCHI)) << 8;

if (devpriv->adc_coding == adc_2comp)
if (devpriv->adc_2comp)
data[i] ^= 0x800;
}

Expand Down Expand Up @@ -338,7 +336,7 @@ static int rti800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return -ENOMEM;
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[1] = (it->options[8] == 0);
/* invalid, forces the MUXGAIN register to be set when first used */
Expand Down

0 comments on commit c7c1161

Please sign in to comment.