Message ID | 20250217141630.897334-21-jic23@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | IIO: ADCs: Sparse friendly claim of direct mode | expand |
On Mon, 2025-02-17 at 14:16 +0000, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > 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. > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Cc: Uwe Kleine-König <u.kleine-koenig@baylibre.com> > --- Reviewed-by: Nuno Sá <nuno.sa@analog.com> > drivers/iio/adc/ad_sigma_delta.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/iio/adc/ad_sigma_delta.c > b/drivers/iio/adc/ad_sigma_delta.c > index 10e635fc4fa4..5907c35b98e5 100644 > --- a/drivers/iio/adc/ad_sigma_delta.c > +++ b/drivers/iio/adc/ad_sigma_delta.c > @@ -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 @@ int ad_sigma_delta_single_conversion(struct iio_dev > *indio_dev, > 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;
diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c index 10e635fc4fa4..5907c35b98e5 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -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 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev, 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;