]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: ad_sigma_delta: Switch to sparse friendly iio_device_claim/release_direct()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 17 Feb 2025 14:16:20 +0000 (14:16 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 4 Mar 2025 13:17:49 +0000 (13:17 +0000)
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.

This is a complex function with a lot more than the release of direct
mode to unwind on error. As such no attempt made to factor out
the inner code.

Cc: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250217141630.897334-21-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad_sigma_delta.c

index 10e635fc4fa4bf0ecad279962a2b944153b436be..5907c35b98e543ca74caa2d5da674206440c16a8 100644 (file)
@@ -386,9 +386,8 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev,
        unsigned int data_reg;
        int ret = 0;
 
-       ret = iio_device_claim_direct_mode(indio_dev);
-       if (ret)
-               return ret;
+       if (!iio_device_claim_direct(indio_dev))
+               return -EBUSY;
 
        ad_sigma_delta_set_channel(sigma_delta, chan->address);
 
@@ -431,7 +430,7 @@ out_unlock:
        sigma_delta->keep_cs_asserted = false;
        sigma_delta->bus_locked = false;
        spi_bus_unlock(sigma_delta->spi->controller);
-       iio_device_release_direct_mode(indio_dev);
+       iio_device_release_direct(indio_dev);
 
        if (ret)
                return ret;