From a39fd59efec9ac49cdad066a4d26cb1d254ff587 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Thu, 31 Jan 2013 21:43:00 +0000 Subject: [PATCH] --- yaml --- r: 354409 b: refs/heads/master c: 482bb4e6c648a68598cde9d4a56b066df26d5ae6 h: refs/heads/master i: 354407: f6eb072b02b73cb0431a8ead0b70bfd1bf4fa72c v: v3 --- [refs] | 2 +- trunk/drivers/iio/adc/max1363.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index b52c68a55deb..ea9f21d669d4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dcb9ca0a25e1ccab9ad6827887c08e2b6b65f38e +refs/heads/master: 482bb4e6c648a68598cde9d4a56b066df26d5ae6 diff --git a/trunk/drivers/iio/adc/max1363.c b/trunk/drivers/iio/adc/max1363.c index 77c123fcd0d0..46732380566f 100644 --- a/trunk/drivers/iio/adc/max1363.c +++ b/trunk/drivers/iio/adc/max1363.c @@ -335,7 +335,7 @@ static int max1363_read_single_chan(struct iio_dev *indio_dev, { int ret = 0; s32 data; - char rxbuf[2]; + u8 rxbuf[2]; struct max1363_state *st = iio_priv(indio_dev); struct i2c_client *client = st->client; @@ -367,7 +367,8 @@ static int max1363_read_single_chan(struct iio_dev *indio_dev, ret = data; goto error_ret; } - data = (s32)(rxbuf[1]) | ((s32)(rxbuf[0] & 0x0F)) << 8; + data = (rxbuf[1] | rxbuf[0] << 8) & + ((1 << st->chip_info->bits) - 1); } else { /* Get reading */ data = i2c_master_recv(client, rxbuf, 1);