iio: common: scmi: Switch to sparse friendly iio_device_claim/release_direct()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 31 Mar 2025 12:12:46 +0000 (13:12 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 22 Apr 2025 18:09:59 +0000 (19:09 +0100)
These new functions allow sparse to find failures to release
direct mode reducing chances of bugs over the claim_direct_mode()
functions that are deprecated.

Cc: Jyoti Bhayana <jbhayana@google.com>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Link: https://patch.msgid.link/20250331121317.1694135-7-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/common/scmi_sensors/scmi_iio.c

index ed15dcbf4cf6b1e49eb506972f00d40e0c3dd6c4..1a62dd902f05682795ac3ee22fd94c0c0aed4213 100644 (file)
@@ -351,12 +351,11 @@ static int scmi_iio_read_raw(struct iio_dev *iio_dev,
                ret = scmi_iio_get_odr_val(iio_dev, val, val2);
                return ret ? ret : IIO_VAL_INT_PLUS_MICRO;
        case IIO_CHAN_INFO_RAW:
-               ret = iio_device_claim_direct_mode(iio_dev);
-               if (ret)
-                       return ret;
+               if (!iio_device_claim_direct(iio_dev))
+                       return -EBUSY;
 
                ret = scmi_iio_read_channel_data(iio_dev, ch, val, val2);
-               iio_device_release_direct_mode(iio_dev);
+               iio_device_release_direct(iio_dev);
                return ret;
        default:
                return -EINVAL;