All of lore.kernel.org
 help / color / mirror / Atom feed
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 13/37] iio: humidity: hts211: Factor out everything under direct mode claim into helper functions.
Date: Tue, 1 Apr 2025 08:33:33 +0200	[thread overview]
Message-ID: <Z-uIvYx-wvyUbkiO@lore-desk> (raw)
In-Reply-To: <20250331121317.1694135-14-jic23@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 4803 bytes --]

On Mar 31, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Pulling out the functionality of read_raw() and write_raw() callbacks
> so that only the mode claim is done in the initial call allows for
> direct returns and simpler error handling in the new __hts211_write_raw()
> / __hts211_read_raw() functions.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>

> ---
>  drivers/iio/humidity/hts221_core.c | 89 +++++++++++++++---------------
>  1 file changed, 45 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts221_core.c
> index 0be11470730c..ca4746f2ecba 100644
> --- a/drivers/iio/humidity/hts221_core.c
> +++ b/drivers/iio/humidity/hts221_core.c
> @@ -418,31 +418,22 @@ static int hts221_read_oneshot(struct hts221_hw *hw, u8 addr, int *val)
>  	return IIO_VAL_INT;
>  }
>  
> -static int hts221_read_raw(struct iio_dev *iio_dev,
> -			   struct iio_chan_spec const *ch,
> -			   int *val, int *val2, long mask)
> +static int __hts221_read_raw(struct iio_dev *iio_dev,
> +			     struct iio_chan_spec const *ch,
> +			     int *val, int *val2, long mask)
>  {
>  	struct hts221_hw *hw = iio_priv(iio_dev);
> -	int ret;
> -
> -	ret = iio_device_claim_direct_mode(iio_dev);
> -	if (ret)
> -		return ret;
>  
>  	switch (mask) {
>  	case IIO_CHAN_INFO_RAW:
> -		ret = hts221_read_oneshot(hw, ch->address, val);
> -		break;
> +		return hts221_read_oneshot(hw, ch->address, val);
>  	case IIO_CHAN_INFO_SCALE:
> -		ret = hts221_get_sensor_scale(hw, ch->type, val, val2);
> -		break;
> +		return hts221_get_sensor_scale(hw, ch->type, val, val2);
>  	case IIO_CHAN_INFO_OFFSET:
> -		ret = hts221_get_sensor_offset(hw, ch->type, val, val2);
> -		break;
> +		return hts221_get_sensor_offset(hw, ch->type, val, val2);
>  	case IIO_CHAN_INFO_SAMP_FREQ:
>  		*val = hw->odr;
> -		ret = IIO_VAL_INT;
> -		break;
> +		return IIO_VAL_INT;
>  	case IIO_CHAN_INFO_OVERSAMPLING_RATIO: {
>  		u8 idx;
>  		const struct hts221_avg *avg;
> @@ -452,62 +443,72 @@ static int hts221_read_raw(struct iio_dev *iio_dev,
>  			avg = &hts221_avg_list[HTS221_SENSOR_H];
>  			idx = hw->sensors[HTS221_SENSOR_H].cur_avg_idx;
>  			*val = avg->avg_avl[idx];
> -			ret = IIO_VAL_INT;
> -			break;
> +			return IIO_VAL_INT;
>  		case IIO_TEMP:
>  			avg = &hts221_avg_list[HTS221_SENSOR_T];
>  			idx = hw->sensors[HTS221_SENSOR_T].cur_avg_idx;
>  			*val = avg->avg_avl[idx];
> -			ret = IIO_VAL_INT;
> -			break;
> +			return IIO_VAL_INT;
>  		default:
> -			ret = -EINVAL;
> -			break;
> +			return -EINVAL;
>  		}
> -		break;
>  	}
>  	default:
> -		ret = -EINVAL;
> -		break;
> +		return -EINVAL;
>  	}
> -
> -	iio_device_release_direct_mode(iio_dev);
> -
> -	return ret;
>  }
>  
> -static int hts221_write_raw(struct iio_dev *iio_dev,
> -			    struct iio_chan_spec const *chan,
> -			    int val, int val2, long mask)
> +static int hts221_read_raw(struct iio_dev *iio_dev,
> +			   struct iio_chan_spec const *ch,
> +			   int *val, int *val2, long mask)
>  {
> -	struct hts221_hw *hw = iio_priv(iio_dev);
>  	int ret;
>  
>  	ret = iio_device_claim_direct_mode(iio_dev);
>  	if (ret)
>  		return ret;
>  
> +	ret = __hts221_read_raw(iio_dev, ch, val, val2, mask);
> +
> +	iio_device_release_direct_mode(iio_dev);
> +
> +	return ret;
> +}
> +
> +static int __hts221_write_raw(struct iio_dev *iio_dev,
> +			      struct iio_chan_spec const *chan,
> +			      int val, long mask)
> +{
> +	struct hts221_hw *hw = iio_priv(iio_dev);
> +
>  	switch (mask) {
>  	case IIO_CHAN_INFO_SAMP_FREQ:
> -		ret = hts221_update_odr(hw, val);
> -		break;
> +		return hts221_update_odr(hw, val);
>  	case IIO_CHAN_INFO_OVERSAMPLING_RATIO:
>  		switch (chan->type) {
>  		case IIO_HUMIDITYRELATIVE:
> -			ret = hts221_update_avg(hw, HTS221_SENSOR_H, val);
> -			break;
> +			return hts221_update_avg(hw, HTS221_SENSOR_H, val);
>  		case IIO_TEMP:
> -			ret = hts221_update_avg(hw, HTS221_SENSOR_T, val);
> -			break;
> +			return hts221_update_avg(hw, HTS221_SENSOR_T, val);
>  		default:
> -			ret = -EINVAL;
> -			break;
> +			return -EINVAL;
>  		}
> -		break;
>  	default:
> -		ret = -EINVAL;
> -		break;
> +		return -EINVAL;
>  	}
> +}
> +
> +static int hts221_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 = __hts221_write_raw(iio_dev, chan, val, mask);
>  
>  	iio_device_release_direct_mode(iio_dev);
>  
> -- 
> 2.48.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2025-04-01  6:33 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 [this message]
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
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-uIvYx-wvyUbkiO@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.