]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
iio: imu: inv_icm42600: change invalid data error to -EBUSY
authorJean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Fri, 8 Aug 2025 07:40:10 +0000 (09:40 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 11 Aug 2025 20:35:01 +0000 (21:35 +0100)
Temperature sensor returns the temperature of the mechanical parts
of the chip. If both accel and gyro are off, the temperature sensor is
also automatically turned off and returns invalid data.

In this case, returning -EBUSY error code is better then -EINVAL and
indicates userspace that it needs to retry reading temperature in
another context.

Fixes: bc3eb0207fb5 ("iio: imu: inv_icm42600: add temperature sensor support")
Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Cc: stable@vger.kernel.org
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Reviewed-by: Sean Nyekjaer <sean@geanix.com>
Link: https://patch.msgid.link/20250808-inv-icm42600-change-temperature-error-code-v1-1-986fbf63b77d@tdk.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c

index 8b15afca498cb5dfa7e056a60d3c78e419f11b29..271a4788604ad533cd9952ffbb274dcd684f1f6d 100644 (file)
@@ -32,8 +32,12 @@ static int inv_icm42600_temp_read(struct inv_icm42600_state *st, s16 *temp)
                goto exit;
 
        *temp = (s16)be16_to_cpup(raw);
+       /*
+        * Temperature data is invalid if both accel and gyro are off.
+        * Return -EBUSY in this case.
+        */
        if (*temp == INV_ICM42600_DATA_INVALID)
-               ret = -EINVAL;
+               ret = -EBUSY;
 
 exit:
        mutex_unlock(&st->lock);