[PATCH 5/5] iio: adc: ad4030: explain rearranging raw sample data

David Lechner posted 5 patches 11 months ago
[PATCH 5/5] iio: adc: ad4030: explain rearranging raw sample data
Posted by David Lechner 11 months ago
Add a comment explaining why the raw sample data is rearranged in the
in the ad4030_conversion() function. It is not so obvious from the code
why this is done.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/ad4030.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/iio/adc/ad4030.c b/drivers/iio/adc/ad4030.c
index 54ad74b96c9f256a67848330f875379edc828b0b..636f9f33e66af73d102722b984dc1230e1417d1e 100644
--- a/drivers/iio/adc/ad4030.c
+++ b/drivers/iio/adc/ad4030.c
@@ -646,6 +646,12 @@ static int ad4030_conversion(struct iio_dev *indio_dev)
 					   &st->rx_data.dual.diff[0],
 					   &st->rx_data.dual.diff[1]);
 
+	/*
+	 * If no common mode voltage channel is enabled, we can use the raw
+	 * data as is. Otherwise, we need to rearrange the data a bit to match
+	 * the natural alignment of the IIO buffer.
+	 */
+
 	if (st->mode != AD4030_OUT_DATA_MD_16_DIFF_8_COM &&
 	    st->mode != AD4030_OUT_DATA_MD_24_DIFF_8_COM)
 		return 0;

-- 
2.43.0
Re: [PATCH 5/5] iio: adc: ad4030: explain rearranging raw sample data
Posted by Nuno Sá 11 months ago
On Mon, 2025-03-10 at 15:43 -0500, David Lechner wrote:
> Add a comment explaining why the raw sample data is rearranged in the
> in the ad4030_conversion() function. It is not so obvious from the code
> why this is done.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---

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

(BTW, for some reason I started to send the tags without first checking the
complete series. So I could have just replied to the cover :facepalm:

- Nuno Sá

>  drivers/iio/adc/ad4030.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/iio/adc/ad4030.c b/drivers/iio/adc/ad4030.c
> index
> 54ad74b96c9f256a67848330f875379edc828b0b..636f9f33e66af73d102722b984dc1230e141
> 7d1e 100644
> --- a/drivers/iio/adc/ad4030.c
> +++ b/drivers/iio/adc/ad4030.c
> @@ -646,6 +646,12 @@ static int ad4030_conversion(struct iio_dev *indio_dev)
>  					   &st->rx_data.dual.diff[0],
>  					   &st->rx_data.dual.diff[1]);
>  
> +	/*
> +	 * If no common mode voltage channel is enabled, we can use the raw
> +	 * data as is. Otherwise, we need to rearrange the data a bit to
> match
> +	 * the natural alignment of the IIO buffer.
> +	 */
> +
>  	if (st->mode != AD4030_OUT_DATA_MD_16_DIFF_8_COM &&
>  	    st->mode != AD4030_OUT_DATA_MD_24_DIFF_8_COM)
>  		return 0;
> 
Re: [PATCH 5/5] iio: adc: ad4030: explain rearranging raw sample data
Posted by Jonathan Cameron 11 months ago
On Tue, 11 Mar 2025 09:30:32 +0000
Nuno Sá <noname.nuno@gmail.com> wrote:

> On Mon, 2025-03-10 at 15:43 -0500, David Lechner wrote:
> > Add a comment explaining why the raw sample data is rearranged in the
> > in the ad4030_conversion() function. It is not so obvious from the code
> > why this is done.
> > 
> > Signed-off-by: David Lechner <dlechner@baylibre.com>
> > ---  
> 
> Reviewed-by: Nuno Sá <nuno.sa@analog.com>
> 
> (BTW, for some reason I started to send the tags without first checking the
> complete series. So I could have just replied to the cover :facepalm:

I do that sometimes when I know I might not get to the end of the series :)

Just to add to the confusion...

Series applied to the testing branch of iio.git which I'll rebase after
rc1 is available.

Thanks

Jonathan

> 
> - Nuno Sá
> 
> >  drivers/iio/adc/ad4030.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/drivers/iio/adc/ad4030.c b/drivers/iio/adc/ad4030.c
> > index
> > 54ad74b96c9f256a67848330f875379edc828b0b..636f9f33e66af73d102722b984dc1230e141
> > 7d1e 100644
> > --- a/drivers/iio/adc/ad4030.c
> > +++ b/drivers/iio/adc/ad4030.c
> > @@ -646,6 +646,12 @@ static int ad4030_conversion(struct iio_dev *indio_dev)
> >  					   &st->rx_data.dual.diff[0],
> >  					   &st->rx_data.dual.diff[1]);
> >  
> > +	/*
> > +	 * If no common mode voltage channel is enabled, we can use the raw
> > +	 * data as is. Otherwise, we need to rearrange the data a bit to
> > match
> > +	 * the natural alignment of the IIO buffer.
> > +	 */
> > +
> >  	if (st->mode != AD4030_OUT_DATA_MD_16_DIFF_8_COM &&
> >  	    st->mode != AD4030_OUT_DATA_MD_24_DIFF_8_COM)
> >  		return 0;
> >   
>