Message ID | 20250217141630.897334-12-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. > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Cc: Alisa-Dariana Roman <alisa.roman@analog.com> > --- Reviewed-by: Nuno Sá <nuno.sa@analog.com> > drivers/iio/adc/ad7192.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c > index 785429900da8..f6150b905286 100644 > --- a/drivers/iio/adc/ad7192.c > +++ b/drivers/iio/adc/ad7192.c > @@ -694,9 +694,8 @@ static ssize_t ad7192_set(struct device *dev, > if (ret < 0) > return ret; > > - ret = iio_device_claim_direct_mode(indio_dev); > - if (ret) > - return ret; > + if (!iio_device_claim_direct(indio_dev)) > + return -EBUSY; > > switch ((u32)this_attr->address) { > case AD7192_REG_GPOCON: > @@ -719,7 +718,7 @@ static ssize_t ad7192_set(struct device *dev, > ret = -EINVAL; > } > > - iio_device_release_direct_mode(indio_dev); > + iio_device_release_direct(indio_dev); > > return ret ? ret : len; > } > @@ -1017,13 +1016,12 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, > { > int ret; > > - ret = iio_device_claim_direct_mode(indio_dev); > - if (ret) > - return ret; > + if (!iio_device_claim_direct(indio_dev)) > + return -EBUSY; > > ret = __ad7192_write_raw(indio_dev, chan, val, val2, mask); > > - iio_device_release_direct_mode(indio_dev); > + iio_device_release_direct(indio_dev); > > return ret; > }
diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 785429900da8..f6150b905286 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -694,9 +694,8 @@ static ssize_t ad7192_set(struct device *dev, if (ret < 0) return ret; - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; switch ((u32)this_attr->address) { case AD7192_REG_GPOCON: @@ -719,7 +718,7 @@ static ssize_t ad7192_set(struct device *dev, ret = -EINVAL; } - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret ? ret : len; } @@ -1017,13 +1016,12 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, { int ret; - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = __ad7192_write_raw(indio_dev, chan, val, val2, mask); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; }