iio/adc: (max1363) Fix data conversion problems
authorGuenter Roeck <linux@roeck-us.net>
Thu, 31 Jan 2013 21:43:00 +0000 (21:43 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sat, 2 Feb 2013 10:08:23 +0000 (10:08 +0000)
commit482bb4e6c648a68598cde9d4a56b066df26d5ae6
tree04fe848f0b03e4e022dba2abc73fe35f1c24ed49
parentdcb9ca0a25e1ccab9ad6827887c08e2b6b65f38e
iio/adc: (max1363) Fix data conversion problems

For chips with more than 8 bit ADC resolution, received data was always
masked against 0xfff, ie with a 12 bit mask. This can result in bad data
for chips with 10 bit resolution if those chips have higher bits set
(seen with MAX1139).

The receive buffer was defined as char array. This could result in
unintentional sign extensions if the upper bit in a received byte
was set. Since the chip is configured for unipolar mode, we never
have to handle negative values, and sign extensions are never needed.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/max1363.c