[PATCH v4 2/6] iio: backend: update iio_backend_oversampling_ratio_set

Pop Ioan Daniel posted 6 patches 7 months ago
There is a newer version of this series
[PATCH v4 2/6] iio: backend: update iio_backend_oversampling_ratio_set
Posted by Pop Ioan Daniel 7 months ago
Add chan parameter to iio_backed_oversampling_ration_set() to allow
for contexts where the channel must be specified. Modify all
existing users.

Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
---
changes in v4:
 - pass 0 in the list of parameters instead of chan
 drivers/iio/adc/ad4851.c           | 4 ++--
 drivers/iio/industrialio-backend.c | 3 ++-
 include/linux/iio/backend.h        | 3 ++-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/adc/ad4851.c b/drivers/iio/adc/ad4851.c
index 12f90aa3a156..1f975858c496 100644
--- a/drivers/iio/adc/ad4851.c
+++ b/drivers/iio/adc/ad4851.c
@@ -319,8 +319,8 @@ static int ad4851_set_oversampling_ratio(struct iio_dev *indio_dev,
 		if (ret)
 			return ret;
 	}
-
-	ret = iio_backend_oversampling_ratio_set(st->back, osr);
+	/* Channel is ignored by the backend being used here */
+	ret = iio_backend_oversampling_ratio_set(st->back, 0, osr);
 	if (ret)
 		return ret;
 
diff --git a/drivers/iio/industrialio-backend.c b/drivers/iio/industrialio-backend.c
index c1eb9ef9db08..a4e3e54fecb1 100644
--- a/drivers/iio/industrialio-backend.c
+++ b/drivers/iio/industrialio-backend.c
@@ -720,9 +720,10 @@ EXPORT_SYMBOL_NS_GPL(iio_backend_data_size_set, "IIO_BACKEND");
  * 0 on success, negative error number on failure.
  */
 int iio_backend_oversampling_ratio_set(struct iio_backend *back,
+				       unsigned int chan,
 				       unsigned int ratio)
 {
-	return iio_backend_op_call(back, oversampling_ratio_set, ratio);
+	return iio_backend_op_call(back, oversampling_ratio_set, chan, ratio);
 }
 EXPORT_SYMBOL_NS_GPL(iio_backend_oversampling_ratio_set, "IIO_BACKEND");
 
diff --git a/include/linux/iio/backend.h b/include/linux/iio/backend.h
index e59d909cb659..dbf4e4a5f4b1 100644
--- a/include/linux/iio/backend.h
+++ b/include/linux/iio/backend.h
@@ -144,7 +144,7 @@ struct iio_backend_ops {
 				  enum iio_backend_interface_type *type);
 	int (*data_size_set)(struct iio_backend *back, unsigned int size);
 	int (*oversampling_ratio_set)(struct iio_backend *back,
-				      unsigned int ratio);
+				      unsigned int chan, unsigned int ratio);
 	int (*read_raw)(struct iio_backend *back,
 			struct iio_chan_spec const *chan, int *val, int *val2,
 			long mask);
@@ -209,6 +209,7 @@ int iio_backend_interface_type_get(struct iio_backend *back,
 				   enum iio_backend_interface_type *type);
 int iio_backend_data_size_set(struct iio_backend *back, unsigned int size);
 int iio_backend_oversampling_ratio_set(struct iio_backend *back,
+				       unsigned int chan,
 				       unsigned int ratio);
 int iio_backend_read_raw(struct iio_backend *back,
 			 struct iio_chan_spec const *chan, int *val, int *val2,
-- 
2.34.1
Re: [PATCH v4 2/6] iio: backend: update iio_backend_oversampling_ratio_set
Posted by Nuno Sá 6 months, 3 weeks ago
On Mon, 2025-05-19 at 17:02 +0300, Pop Ioan Daniel wrote:
> Add chan parameter to iio_backed_oversampling_ration_set() to allow
> for contexts where the channel must be specified. Modify all
> existing users.
> 
> Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
> ---

With the change requested by David in the following patch:

Reviewed-by: Nuno Sá <nuno.sa@analog.com>

> changes in v4:
>  - pass 0 in the list of parameters instead of chan
>  drivers/iio/adc/ad4851.c           | 4 ++--
>  drivers/iio/industrialio-backend.c | 3 ++-
>  include/linux/iio/backend.h        | 3 ++-
>  3 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/adc/ad4851.c b/drivers/iio/adc/ad4851.c
> index 12f90aa3a156..1f975858c496 100644
> --- a/drivers/iio/adc/ad4851.c
> +++ b/drivers/iio/adc/ad4851.c
> @@ -319,8 +319,8 @@ static int ad4851_set_oversampling_ratio(struct iio_dev
> *indio_dev,
>  		if (ret)
>  			return ret;
>  	}
> -
> -	ret = iio_backend_oversampling_ratio_set(st->back, osr);
> +	/* Channel is ignored by the backend being used here */
> +	ret = iio_backend_oversampling_ratio_set(st->back, 0, osr);
>  	if (ret)
>  		return ret;
>  
> diff --git a/drivers/iio/industrialio-backend.c b/drivers/iio/industrialio-
> backend.c
> index c1eb9ef9db08..a4e3e54fecb1 100644
> --- a/drivers/iio/industrialio-backend.c
> +++ b/drivers/iio/industrialio-backend.c
> @@ -720,9 +720,10 @@ EXPORT_SYMBOL_NS_GPL(iio_backend_data_size_set,
> "IIO_BACKEND");
>   * 0 on success, negative error number on failure.
>   */
>  int iio_backend_oversampling_ratio_set(struct iio_backend *back,
> +				       unsigned int chan,
>  				       unsigned int ratio)
>  {
> -	return iio_backend_op_call(back, oversampling_ratio_set, ratio);
> +	return iio_backend_op_call(back, oversampling_ratio_set, chan,
> ratio);
>  }
>  EXPORT_SYMBOL_NS_GPL(iio_backend_oversampling_ratio_set, "IIO_BACKEND");
>  
> diff --git a/include/linux/iio/backend.h b/include/linux/iio/backend.h
> index e59d909cb659..dbf4e4a5f4b1 100644
> --- a/include/linux/iio/backend.h
> +++ b/include/linux/iio/backend.h
> @@ -144,7 +144,7 @@ struct iio_backend_ops {
>  				  enum iio_backend_interface_type *type);
>  	int (*data_size_set)(struct iio_backend *back, unsigned int size);
>  	int (*oversampling_ratio_set)(struct iio_backend *back,
> -				      unsigned int ratio);
> +				      unsigned int chan, unsigned int ratio);
>  	int (*read_raw)(struct iio_backend *back,
>  			struct iio_chan_spec const *chan, int *val, int
> *val2,
>  			long mask);
> @@ -209,6 +209,7 @@ int iio_backend_interface_type_get(struct iio_backend
> *back,
>  				   enum iio_backend_interface_type *type);
>  int iio_backend_data_size_set(struct iio_backend *back, unsigned int size);
>  int iio_backend_oversampling_ratio_set(struct iio_backend *back,
> +				       unsigned int chan,
>  				       unsigned int ratio);
>  int iio_backend_read_raw(struct iio_backend *back,
>  			 struct iio_chan_spec const *chan, int *val, int
> *val2,
Re: [PATCH v4 2/6] iio: backend: update iio_backend_oversampling_ratio_set
Posted by David Lechner 7 months ago
On 5/19/25 9:02 AM, Pop Ioan Daniel wrote:
> Add chan parameter to iio_backed_oversampling_ration_set() to allow

s/ration/ratio/

(This is a good commit message because it says _why_ :-)

> for contexts where the channel must be specified. Modify all
> existing users.
> 
> Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
> ---
Reviewed-by: David Lechner <dlechner@baylibre.com>