]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
iio: imu: st_lsm6dsx: Switch to sparse friendly claim/release_direct()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 31 Mar 2025 12:12:59 +0000 (13:12 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 22 Apr 2025 18:10:00 +0000 (19:10 +0100)
This driver caused a false positive with __cond_lock() style solution
but is fine with the simple boolean return approach now used.

Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Link: https://patch.msgid.link/20250331121317.1694135-20-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c

index 4fdcc2acc94ed0f594116b9141ce85f7c4449a58..670cd217eb506e8d3b8415666fedc035f944ddc9 100644 (file)
@@ -1804,12 +1804,11 @@ static int st_lsm6dsx_read_raw(struct iio_dev *iio_dev,
 
        switch (mask) {
        case IIO_CHAN_INFO_RAW:
-               ret = iio_device_claim_direct_mode(iio_dev);
-               if (ret)
-                       break;
+               if (!iio_device_claim_direct(iio_dev))
+                       return -EBUSY;
 
                ret = st_lsm6dsx_read_oneshot(sensor, ch->address, val);
-               iio_device_release_direct_mode(iio_dev);
+               iio_device_release_direct(iio_dev);
                break;
        case IIO_CHAN_INFO_SAMP_FREQ:
                *val = sensor->odr / 1000;
@@ -1834,11 +1833,10 @@ static int st_lsm6dsx_write_raw(struct iio_dev *iio_dev,
                                int val, int val2, long mask)
 {
        struct st_lsm6dsx_sensor *sensor = iio_priv(iio_dev);
-       int err;
+       int err = 0;
 
-       err = iio_device_claim_direct_mode(iio_dev);
-       if (err)
-               return err;
+       if (!iio_device_claim_direct(iio_dev))
+               return -EBUSY;
 
        switch (mask) {
        case IIO_CHAN_INFO_SCALE:
@@ -1860,7 +1858,7 @@ static int st_lsm6dsx_write_raw(struct iio_dev *iio_dev,
                break;
        }
 
-       iio_device_release_direct_mode(iio_dev);
+       iio_device_release_direct(iio_dev);
 
        return err;
 }