Re: [PATCH] iio/gyro/bmg160: Use millidegrees for temperature scale

From: Tomasz Duszynski
Date: Tue Feb 12 2019 - 12:00:58 EST


On Tue, Feb 12, 2019 at 03:25:49PM +0100, Mike Looijmans 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@xxxxxxxx>
> ---
> drivers/iio/gyro/bmg160_core.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c
> index 63ca316..ad7f8cb 100644
> --- a/drivers/iio/gyro/bmg160_core.c
> +++ b/drivers/iio/gyro/bmg160_core.c
> @@ -585,8 +585,9 @@ static int bmg160_read_raw(struct iio_dev *indio_dev,
> *val = 0;
> switch (chan->type) {
> case IIO_TEMP:
> - *val2 = 500000;
> - return IIO_VAL_INT_PLUS_MICRO;
> + *val = 500;
> + *val2 = 0;
> + return IIO_VAL_INT;

You are returning integer type to iio so there's no point in touching
val2. iio will ignore it anyway.

> case IIO_ANGL_VEL:
> {
> int i;
> --
> 1.9.1
>