]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: consumers: Fix offset handling in iio_convert_raw_to_processed()
authorHans de Goede <hansg@kernel.org>
Sun, 31 Aug 2025 10:48:21 +0000 (12:48 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Oct 2025 09:56:33 +0000 (11:56 +0200)
[ Upstream commit 33f5c69c4daff39c010b3ea6da8ebab285f4277b ]

Fix iio_convert_raw_to_processed() offset handling for channels without
a scale attribute.

The offset has been applied to the raw64 value not to the original raw
value. Use the raw64 value so that the offset is taken into account.

Fixes: 14b457fdde38 ("iio: inkern: apply consumer scale when no channel scale is available")
Cc: Liam Beguin <liambeguin@gmail.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hansg@kernel.org>
Link: https://patch.msgid.link/20250831104825.15097-3-hansg@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iio/inkern.c

index 5c210f48bd9cec0b52aef6127c476b280d0efe87..c7795feb904ed979af0c51abf129322d75f63360 100644 (file)
@@ -669,7 +669,7 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
                 * If no channel scaling is available apply consumer scale to
                 * raw value and return.
                 */
-               *processed = raw * scale;
+               *processed = raw64 * scale;
                return 0;
        }