On Thu, 13 Jun 2024 12:39:19 -0300 Fernando Yang <hagisf@xxxxxx> wrote: > Switching to the _scoped() version can make the error handling more > natural instead of delayed until direct mode was released. > > Signed-off-by: Fernando Yang <hagisf@xxxxxx> > --- > drivers/iio/adc/ad7266.c | 27 +++++++++++++-------------- > 1 file changed, 13 insertions(+), 14 deletions(-) > > diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c > index 13ea8a107..356c2fe07 100644 > --- a/drivers/iio/adc/ad7266.c > +++ b/drivers/iio/adc/ad7266.c > @@ -151,20 +151,19 @@ static int ad7266_read_raw(struct iio_dev *indio_dev, > > switch (m) { > case IIO_CHAN_INFO_RAW: > - ret = iio_device_claim_direct_mode(indio_dev); > - if (ret) > - return ret; > - ret = ad7266_read_single(st, val, chan->address); > - iio_device_release_direct_mode(indio_dev); > - > - if (ret < 0) > - return ret; > - *val = (*val >> 2) & 0xfff; > - if (chan->scan_type.sign == 's') > - *val = sign_extend32(*val, > - chan->scan_type.realbits - 1); > - > - return IIO_VAL_INT; > + iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { > + ret = ad7266_read_single(st, val, chan->address); > + Seems to be some stray white space (tabs) on the line above. Make sure to run checkpatch.pl. Also reformat this to bring call and error condition together. iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { ret = ad7266_read_single(st, val, chan->address); if (ret < 0) return ret; *val = ... > + if (ret < 0) > + return ret; > + *val = (*val >> 2) & 0xfff; > + if (chan->scan_type.sign == 's') > + *val = sign_extend32(*val, > + chan->scan_type.realbits - 1); > + This doesn't look like a correct indent. Align c with * as done in the original code > + return IIO_VAL_INT; > + } > + unreachable(); > case IIO_CHAN_INFO_SCALE: > scale_mv = st->vref_mv; > if (st->mode == AD7266_MODE_DIFF)