Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 307fe9dd authored by Linus Walleij's avatar Linus Walleij Committed by Jonathan Cameron
Browse files

iio: accel: kxsd9: Fix scaling bug



All the scaling of the KXSD9 involves multiplication with a
fraction number < 1.

However the scaling value returned from IIO_INFO_SCALE was
unpredictable as only the micros of the value was assigned, and
not the integer part, resulting in scaling like this:

$cat in_accel_scale
-1057462640.011978

Fix this by assigning zero to the integer part.

Cc: stable@vger.kernel.org
Tested-by: default avatarJonathan Cameron <jic23@kernel.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 1c500840
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -166,6 +166,7 @@ static int kxsd9_read_raw(struct iio_dev *indio_dev,
		ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C));
		ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C));
		if (ret < 0)
		if (ret < 0)
			goto error_ret;
			goto error_ret;
		*val = 0;
		*val2 = kxsd9_micro_scales[ret & KXSD9_FS_MASK];
		*val2 = kxsd9_micro_scales[ret & KXSD9_FS_MASK];
		ret = IIO_VAL_INT_PLUS_MICRO;
		ret = IIO_VAL_INT_PLUS_MICRO;
		break;
		break;