]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
iio: light: al3010: fix incorrect scale for the highest gain range
authorVidhu Sarwal <vidhu.linux@gmail.com>
Sat, 4 Jul 2026 11:52:45 +0000 (17:22 +0530)
committerJonathan Cameron <jic23@kernel.org>
Sat, 4 Jul 2026 23:04:18 +0000 (00:04 +0100)
commitaa411adc6ce40ad1a55ebc965f255a4cfc0005f8
tree8e0242b1075987384a309150d57c6ab919b53eea
parenta9f41809bf1bd8e5c1bc4b6a1052adac58eb7ab6
iio: light: al3010: fix incorrect scale for the highest gain range

al3010_scales[] encodes the highest gain range as {0, 1187200}.
For IIO_VAL_INT_PLUS_MICRO, the fractional part must be less than
1000000, so the scale 1.1872 should instead be represented as
{ 1, 187200 }.

Since write_raw() compares the value from userspace against this
table, writing the advertised 1.1872 scale never matches the malformed
entry and returns -EINVAL. As a result, the highest gain range cannot
be selected. Reading the scale in that state also reports the malformed
value.

Fixes: c36b5195ab70 ("iio: light: add Dyna-Image AL3010 driver")
Signed-off-by: Vidhu Sarwal <vidhu.linux@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/light/al3010.c