Alison, Can you give a Tested-by: since I don't own this sensor anymore. Thanks, Matt On Sun, May 29, 2016 at 7:52 PM, Matt Ranostay <mranostay@xxxxxxxxx> wrote: > Shifting sensor data to the right 2 bits was incorrect and caused the > scaling values + offsets to be invalid. > > Reported-by: Alison Schofield <amsfield22@xxxxxxxxx> > Signed-off-by: Matt Ranostay <mranostay@xxxxxxxxx> > --- > drivers/iio/humidity/hdc100x.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/iio/humidity/hdc100x.c b/drivers/iio/humidity/hdc100x.c > index 3070983..a03832a 100644 > --- a/drivers/iio/humidity/hdc100x.c > +++ b/drivers/iio/humidity/hdc100x.c > @@ -164,14 +164,14 @@ static int hdc100x_get_measurement(struct hdc100x_data *data, > dev_err(&client->dev, "cannot read high byte measurement"); > return ret; > } > - val = ret << 6; > + val = ret << 8; > > ret = i2c_smbus_read_byte(client); > if (ret < 0) { > dev_err(&client->dev, "cannot read low byte measurement"); > return ret; > } > - val |= ret >> 2; > + val |= ret; > > return val; > } > @@ -212,17 +212,17 @@ static int hdc100x_read_raw(struct iio_dev *indio_dev, > case IIO_CHAN_INFO_SCALE: > if (chan->type == IIO_TEMP) { > *val = 165000; > - *val2 = 65536 >> 2; > + *val2 = 65536; > return IIO_VAL_FRACTIONAL; > } else { > - *val = 0; > - *val2 = 10000; > - return IIO_VAL_INT_PLUS_MICRO; > + *val = 100; > + *val2 = 65536; > + return IIO_VAL_FRACTIONAL; > } > break; > case IIO_CHAN_INFO_OFFSET: > - *val = -3971; > - *val2 = 879096; > + *val = -15887; > + *val2 = 515151; > return IIO_VAL_INT_PLUS_MICRO; > default: > return -EINVAL; > -- > 2.7.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html