patch "iio: DAC: ad5624r_spi: fix bit shift of output data value" added to staging-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: DAC: ad5624r_spi: fix bit shift of output data value
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
09f4dcc9443c4731b6669066bd1bc4312ef17bccMon Sep 17 00:00:00 2001
From: JM Friedt <[email protected]>
Date: Fri, 19 Jun 2015 14:48:06 +0200
Subject: iio: DAC: ad5624r_spi: fix bit shift of output data value
The value sent on the SPI bus is shifted by an erroneous number of bits. The shift value was already computed in the iio_chan_spec structure and hence subtracting this argument to 16 yields an erroneous data position in the SPI stream.
--- drivers/iio/dac/ad5624r_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/iio/dac/ad5624r_spi.c +2 -2
@@ -22,7 +22,7 @@#include "ad5624r.h" static int ad5624r_spi_write (struct spi_device *spi, -u8 cmd,u8 addr,u16 val,u8 len) +u8 cmd,u8 addr,u16 val,u8 shift) {u32 data;u8 msg[3 ];
@@ -35,7 +35,7 @@ static int ad5624r_spi_write(struct spi_device *spi,* 14-, 12-bit input code followed by 0, 2, or 4 don't care bits, * for the AD5664R, AD5644R, and AD5624R, respectively. */ - data = (0 <<22 ) | (cmd <<19 ) | (addr <<16 ) | (val << (16 - len)); + data = (0 <<22 ) | (cmd <<19 ) | (addr <<16 ) | (val << shift); msg[0 ] = data >>16 ; msg[1 ] = data >>8 ; msg[2 ] = data;
Signature · 1 line
2.4.6