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
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,
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>
© 2016 - 2025 Red Hat, Inc.