From: Lorenzo Bianconi <lorenzo@kernel.org>
To: Jonathan Cameron <jic23@kernel.org>
Cc: linux-iio@vger.kernel.org,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Cosmin Tanislav" <demonsingur@gmail.com>,
"Roan van Dijk" <roan@protonic.nl>,
"Jyoti Bhayana" <jbhayana@google.com>,
"Nishant Malpani" <nish.malpani25@gmail.com>,
"Eugene Zaikonnikov" <ez@norphonic.com>,
"Jean-Baptiste Maneyrol" <jean-baptiste.maneyrol@tdk.com>,
"Shen Jianping" <Jianping.Shen@de.bosch.com>,
"Matti Vaittinen" <mazziesaccount@gmail.com>,
"Yasin Lee" <yasin.lee.x@gmail.com>,
"Andy Shevchenko" <andy.shevchenko@gmail.com>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH 18/37] iio: imu: st_lsm6dsx: Factor out parts of st_lsm6dsx_shub_write_raw() to allow direct returns
Date: Tue, 1 Apr 2025 08:27:37 +0200 [thread overview]
Message-ID: <Z-uHWYQ8tLU63B1T@lore-desk> (raw)
In-Reply-To: <20250331121317.1694135-19-jic23@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 3122 bytes --]
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> By factoring out all the code that occurs with direct mode claimed
> to a helper function, that helper function can directly return simplifying
> code flow.
>
> 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 | 65 +++++++++++---------
> 1 file changed, 35 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> index c1b444520d2a..17a74f5adfc0 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> @@ -614,53 +614,58 @@ st_lsm6dsx_shub_set_full_scale(struct st_lsm6dsx_sensor *sensor,
> }
>
> static int
> -st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
> - struct iio_chan_spec const *chan,
> - int val, int val2, long mask)
> +__st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
> + struct iio_chan_spec const *chan,
> + int val, int val2, long mask)
> {
> struct st_lsm6dsx_sensor *sensor = iio_priv(iio_dev);
> int err;
>
> - err = iio_device_claim_direct_mode(iio_dev);
> - if (err)
> - return err;
> -
> switch (mask) {
> case IIO_CHAN_INFO_SAMP_FREQ: {
> + struct st_lsm6dsx_hw *hw = sensor->hw;
> + struct st_lsm6dsx_sensor *ref_sensor;
> + u8 odr_val;
> u16 data;
> + int odr;
>
> val = val * 1000 + val2 / 1000;
> err = st_lsm6dsx_shub_get_odr_val(sensor, val, &data);
> - if (!err) {
> - struct st_lsm6dsx_hw *hw = sensor->hw;
> - struct st_lsm6dsx_sensor *ref_sensor;
> - u8 odr_val;
> - int odr;
> -
> - ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
> - odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
> - if (odr < 0) {
> - err = odr;
> - goto release;
> - }
> -
> - sensor->ext_info.slv_odr = val;
> - sensor->odr = odr;
> - }
> - break;
> + if (err)
> + return err;
> +
> + ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
> + odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
> + if (odr < 0)
> + return odr;
> +
> + sensor->ext_info.slv_odr = val;
> + sensor->odr = odr;
> + return 0;
> }
> case IIO_CHAN_INFO_SCALE:
> - err = st_lsm6dsx_shub_set_full_scale(sensor, val2);
> - break;
> + return st_lsm6dsx_shub_set_full_scale(sensor, val2);
> default:
> - err = -EINVAL;
> - break;
> + return -EINVAL;
> }
> +}
> +
> +static int
> +st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
> + struct iio_chan_spec const *chan,
> + int val, int val2, long mask)
> +{
> + int ret;
> +
> + ret = iio_device_claim_direct_mode(iio_dev);
> + if (ret)
> + return ret;
> +
> + ret = __st_lsm6dsx_shub_write_raw(iio_dev, chan, val, val2, mask);
>
> -release:
> iio_device_release_direct_mode(iio_dev);
>
> - return err;
> + return ret;
> }
>
> static ssize_t
> --
> 2.48.1
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2025-04-01 6:27 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-31 12:12 [PATCH 00/37] IIO: Sparse friendly claim of direct mode (the rest) Jonathan Cameron
2025-03-31 12:12 ` [PATCH 01/37] iio: addac: ad74115: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-03-31 12:12 ` [PATCH 02/37] iio: chemical: ccs811: Factor out handling of read of IIO_INFO_RAW to simplify error paths Jonathan Cameron
2025-03-31 12:12 ` [PATCH 03/37] iio: chemical: ccs811: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-03-31 12:12 ` [PATCH 04/37] iio: chemical: atlas-sensor: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 05/37] iio: chemical: scd4x: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 06/37] iio: common: scmi: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 07/37] iio: common: st_sensors: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 08/37] iio: gyro: adxrs290: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 09/37] iio: health: max30102: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 10/37] iio: humidity: hdc100x: Use guard(mutex) to simplify code flow Jonathan Cameron
2025-03-31 12:12 ` [PATCH 11/37] iio: humidity: hdc100x: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-03-31 12:12 ` [PATCH 12/37] iio: humidity: hdc2010: " Jonathan Cameron
2025-04-01 6:59 ` Eugene Zaikonnikov
2025-03-31 12:12 ` [PATCH 13/37] iio: humidity: hts211: Factor out everything under direct mode claim into helper functions Jonathan Cameron
2025-04-01 6:33 ` Lorenzo Bianconi
2025-03-31 12:12 ` [PATCH 14/37] iio: humidity: hts211: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-04-01 6:34 ` Lorenzo Bianconi
2025-03-31 12:12 ` [PATCH 15/37] iio: imu: inv_icm42600: " Jonathan Cameron
2025-03-31 14:27 ` Jean-Baptiste Maneyrol
2025-03-31 12:12 ` [PATCH 16/37] iio: imu: inv_mpu6050: " Jonathan Cameron
2025-03-31 13:57 ` Jean-Baptiste Maneyrol
2025-03-31 12:12 ` [PATCH 17/37] iio: imu: smi240: " Jonathan Cameron
2025-03-31 12:12 ` [PATCH 18/37] iio: imu: st_lsm6dsx: Factor out parts of st_lsm6dsx_shub_write_raw() to allow direct returns Jonathan Cameron
2025-03-31 14:31 ` David Lechner
2025-04-01 6:28 ` Lorenzo Bianconi
2025-04-06 13:15 ` Jonathan Cameron
2025-04-01 6:27 ` Lorenzo Bianconi [this message]
2025-03-31 12:12 ` [PATCH 19/37] iio: imu: st_lsm6dsx: Switch to sparse friendly claim/release_direct() Jonathan Cameron
2025-04-01 6:31 ` Lorenzo Bianconi
2025-03-31 12:13 ` [PATCH 20/37] iio: imu: st_lsm6dsx: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-04-01 6:29 ` Lorenzo Bianconi
2025-03-31 12:13 ` [PATCH 21/37] iio: magnetometer: mag3110: Factor out core of read/write_raw() and use guard() to simplify code flow Jonathan Cameron
2025-03-31 12:13 ` [PATCH 22/37] iio: magnetometer: mag3110: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-03-31 12:13 ` [PATCH 23/37] iio: magnetometer: rm3100: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 24/37] iio: pressure: dlhl60d: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 25/37] iio: pressure: icp10100: " Jonathan Cameron
2025-03-31 14:03 ` Jean-Baptiste Maneyrol
2025-03-31 12:13 ` [PATCH 26/37] iio: pressure: mpl3115: factor out core of IIO_INFO_RAW read to simplify code flow Jonathan Cameron
2025-03-31 12:13 ` [PATCH 27/37] iio: pressure: mpl3115: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-03-31 12:13 ` [PATCH 28/37] iio: pressure: ms5611: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 29/37] iio: pressure: rohm-bm1390: " Jonathan Cameron
2025-04-01 13:14 ` Matti Vaittinen
2025-03-31 12:13 ` [PATCH 30/37] iio: pressure: zpa2326: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 31/37] iio: proximity: hx9023s: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 32/37] iio: proximity: pulsed-light: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 33/37] iio: proximity: sx9500: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 34/37] iio: temp: maxim_thermocouple: " Jonathan Cameron
2025-03-31 12:13 ` [PATCH 35/37] iio: temp: maxim_thermocouple: Drop unused mutex.h include Jonathan Cameron
2025-03-31 12:13 ` [PATCH 36/37] staging: iio: ad5933: Switch to sparse friendly iio_device_claim/release_direct() Jonathan Cameron
2025-03-31 12:13 ` [PATCH 37/37] iio: Adjust internals of handling of direct mode claiming to suit new API Jonathan Cameron
2025-03-31 13:41 ` Andy Shevchenko
2025-03-31 14:07 ` David Lechner
2025-04-05 16:34 ` Jonathan Cameron
2025-04-05 16:46 ` Andy Shevchenko
2025-04-01 19:13 ` [PATCH 00/37] IIO: Sparse friendly claim of direct mode (the rest) David Lechner
2025-04-06 13:20 ` Jonathan Cameron
2025-04-12 18:54 ` Marcelo Schmitt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z-uHWYQ8tLU63B1T@lore-desk \
--to=lorenzo@kernel.org \
--cc=Jianping.Shen@de.bosch.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=andy.shevchenko@gmail.com \
--cc=demonsingur@gmail.com \
--cc=dlechner@baylibre.com \
--cc=ez@norphonic.com \
--cc=jbhayana@google.com \
--cc=jean-baptiste.maneyrol@tdk.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=mazziesaccount@gmail.com \
--cc=nish.malpani25@gmail.com \
--cc=nuno.sa@analog.com \
--cc=roan@protonic.nl \
--cc=yasin.lee.x@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox