Commit dfdc31e7 authored by Jean-Baptiste Maneyrol's avatar Jean-Baptiste Maneyrol Committed by Jonathan Cameron
Browse files

iio: imu: inv_icm42600: change invalid data error to -EBUSY



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: bc3eb020 ("iio: imu: inv_icm42600: add temperature sensor support")
Signed-off-by: default avatarJean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Cc: stable@vger.kernel.org
Reviewed-by: default avatarAndy Shevchenko <andy@kernel.org>
Reviewed-by: default avatarSean Nyekjaer <sean@geanix.com>
Link: https://patch.msgid.link/20250808-inv-icm42600-change-temperature-error-code-v1-1-986fbf63b77d@tdk.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 197e299a
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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);