Re: [PATCH 2/2] iio:adc:ti-ads124s08: Fix packet read from the ADC

From: Jonathan Cameron
Date: Sun Jan 24 2021 - 10:14:36 EST


On Thu, 21 Jan 2021 13:14:31 -0600
Dan Murphy <dmurphy@xxxxxx> wrote:

> Fix the spi_transfer array in the reading of the data from the ADC.
>
> Fixes: ("e717f8c6dfec iio: adc: Add the TI ads124s08 ADC code")
> Signed-off-by: Dan Murphy <dmurphy@xxxxxx>

I'm not really following the changes below..

> ---
> drivers/iio/adc/ti-ads124s08.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/iio/adc/ti-ads124s08.c b/drivers/iio/adc/ti-ads124s08.c
> index f05d4e0e1c9d..023d81c7e8da 100644
> --- a/drivers/iio/adc/ti-ads124s08.c
> +++ b/drivers/iio/adc/ti-ads124s08.c
> @@ -201,12 +201,10 @@ static int ads124s_read(struct iio_dev *indio_dev, unsigned int chan)
> struct spi_transfer t[] = {
> {
> .tx_buf = &priv->data[0],
> - .len = 4,
> - .cs_change = 1,

We should still need to provide a length for this transfer.

> }, {
> - .tx_buf = &priv->data[1],
> .rx_buf = &priv->data[1],
> .len = 4,
> + .cs_change = 1,

That's unusual... cs_change being set on the last transfer means
the opposite of what it does for earlier transfers.

https://elixir.bootlin.com/linux/latest/source/include/linux/spi/spi.h#L905

Or is the intent here to provide a performance hint that the device doesn't
care if the cs line goes inactive before stating a new set of transfers?
If so add a comment to say that perhaps.

> },
> };
>