Message ID | 20250331121317.1694135-21-jic23@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | IIO: Sparse friendly claim of direct mode (the rest) | expand |
> 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: Lorenzo Bianconi <lorenzo@kernel.org> Acked-by: Lorenzo Bianconi <lorenzo@kernel.org> > --- > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > index 17a74f5adfc0..3c5e65dc0f97 100644 > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > @@ -558,12 +558,11 @@ st_lsm6dsx_shub_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_shub_read_oneshot(sensor, ch, val); > - iio_device_release_direct_mode(iio_dev); > + iio_device_release_direct(iio_dev); > break; > case IIO_CHAN_INFO_SAMP_FREQ: > *val = sensor->ext_info.slv_odr / 1000; > @@ -657,13 +656,12 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev, > { > int ret; > > - ret = iio_device_claim_direct_mode(iio_dev); > - if (ret) > - return ret; > + if (!iio_device_claim_direct(iio_dev)) > + return -EBUSY; > > ret = __st_lsm6dsx_shub_write_raw(iio_dev, chan, val, val2, mask); > > - iio_device_release_direct_mode(iio_dev); > + iio_device_release_direct(iio_dev); > > return ret; > } > -- > 2.48.1 >
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c index 17a74f5adfc0..3c5e65dc0f97 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c @@ -558,12 +558,11 @@ st_lsm6dsx_shub_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_shub_read_oneshot(sensor, ch, val); - iio_device_release_direct_mode(iio_dev); + iio_device_release_direct(iio_dev); break; case IIO_CHAN_INFO_SAMP_FREQ: *val = sensor->ext_info.slv_odr / 1000; @@ -657,13 +656,12 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev, { int ret; - ret = iio_device_claim_direct_mode(iio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(iio_dev)) + return -EBUSY; ret = __st_lsm6dsx_shub_write_raw(iio_dev, chan, val, val2, mask); - iio_device_release_direct_mode(iio_dev); + iio_device_release_direct(iio_dev); return ret; }