staging: iio: adt7316: fix the dac read calculation
authorJeremy Fertic <jeremyfertic@gmail.com>
Sun, 23 Dec 2018 04:57:42 +0000 (21:57 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 May 2019 05:19:11 +0000 (07:19 +0200)
commit8c5a4013e6cff5eeeb249c023db83ad4a086c0e1
treee2e342589df42e57b16e72478cac611a2063bd9b
parent8ea81e9cca6663d7a3c070ef87661772b81fe0ef
staging: iio: adt7316: fix the dac read calculation

commit 45130fb030aec26ac28b4bb23344901df3ec3b7f upstream.

The calculation of the current dac value is using the wrong bits of the
dac lsb register. Create two macros to shift the lsb register value into
lsb position, depending on whether the dac is 10 or 12 bit. Initialize
data to 0 so, with an 8 bit dac, the msb register value can be bitwise
ORed with data.

Fixes: 35f6b6b86ede ("staging: iio: new ADT7316/7/8 and ADT7516/7/9 driver")
Signed-off-by: Jeremy Fertic <jeremyfertic@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/iio/addac/adt7316.c