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);