Message ID | 1550043707-13040-1-git-send-email-mike.looijmans@topic.nl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] iio/gyro/bmg160: Use millidegrees for temperature scale | expand |
On Wed, 13 Feb 2019 08:41:47 +0100 Mike Looijmans <mike.looijmans@topic.nl> wrote: > Standard unit for temperature is millidegrees Celcius, whereas this driver > was reporting in degrees. Fix the scale factor in the driver. > > Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Applied to the fixes-togreg branch of iio.git and marked for stable. Thanks, Jonathan > --- > v2: Don't touch val2 when returning IIO_VAL_INT > Only touch val when returning a value > > drivers/iio/gyro/bmg160_core.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c > index 63ca316..92c07ab 100644 > --- a/drivers/iio/gyro/bmg160_core.c > +++ b/drivers/iio/gyro/bmg160_core.c > @@ -582,11 +582,10 @@ static int bmg160_read_raw(struct iio_dev *indio_dev, > case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: > return bmg160_get_filter(data, val); > case IIO_CHAN_INFO_SCALE: > - *val = 0; > switch (chan->type) { > case IIO_TEMP: > - *val2 = 500000; > - return IIO_VAL_INT_PLUS_MICRO; > + *val = 500; > + return IIO_VAL_INT; > case IIO_ANGL_VEL: > { > int i; > @@ -594,6 +593,7 @@ static int bmg160_read_raw(struct iio_dev *indio_dev, > for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { > if (bmg160_scale_table[i].dps_range == > data->dps_range) { > + *val = 0; > *val2 = bmg160_scale_table[i].scale; > return IIO_VAL_INT_PLUS_MICRO; > }
diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c index 63ca316..92c07ab 100644 --- a/drivers/iio/gyro/bmg160_core.c +++ b/drivers/iio/gyro/bmg160_core.c @@ -582,11 +582,10 @@ static int bmg160_read_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: return bmg160_get_filter(data, val); case IIO_CHAN_INFO_SCALE: - *val = 0; switch (chan->type) { case IIO_TEMP: - *val2 = 500000; - return IIO_VAL_INT_PLUS_MICRO; + *val = 500; + return IIO_VAL_INT; case IIO_ANGL_VEL: { int i; @@ -594,6 +593,7 @@ static int bmg160_read_raw(struct iio_dev *indio_dev, for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { if (bmg160_scale_table[i].dps_range == data->dps_range) { + *val = 0; *val2 = bmg160_scale_table[i].scale; return IIO_VAL_INT_PLUS_MICRO; }
Standard unit for temperature is millidegrees Celcius, whereas this driver was reporting in degrees. Fix the scale factor in the driver. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> --- v2: Don't touch val2 when returning IIO_VAL_INT Only touch val when returning a value drivers/iio/gyro/bmg160_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)