Fix start and stop conversion commands. The proper command is not be
sent.
Fixes: ("e717f8c6dfec iio: adc: Add the TI ads124s08 ADC code")
Signed-off-by: Dan Murphy <[email protected]>
---
drivers/iio/adc/ti-ads124s08.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/adc/ti-ads124s08.c b/drivers/iio/adc/ti-ads124s08.c
index b4a128b19188..f05d4e0e1c9d 100644
--- a/drivers/iio/adc/ti-ads124s08.c
+++ b/drivers/iio/adc/ti-ads124s08.c
@@ -237,7 +237,7 @@ static int ads124s_read_raw(struct iio_dev *indio_dev,
goto out;
}
- ret = ads124s_write_cmd(indio_dev, ADS124S08_START_CONV);
+ ret = ads124s_write_cmd(indio_dev, ADS124S08_CMD_START);
if (ret) {
dev_err(&priv->spi->dev, "Start conversions failed\n");
goto out;
@@ -251,7 +251,7 @@ static int ads124s_read_raw(struct iio_dev *indio_dev,
*val = ret;
- ret = ads124s_write_cmd(indio_dev, ADS124S08_STOP_CONV);
+ ret = ads124s_write_cmd(indio_dev, ADS124S08_CMD_STOP);
if (ret) {
dev_err(&priv->spi->dev, "Stop conversions failed\n");
goto out;
--
2.29.2
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 <[email protected]>
---
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,
}, {
- .tx_buf = &priv->data[1],
.rx_buf = &priv->data[1],
.len = 4,
+ .cs_change = 1,
},
};
--
2.29.2
On Thu, 21 Jan 2021 13:14:31 -0600
Dan Murphy <[email protected]> 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 <[email protected]>
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.
> },
> };
>
Jonathan
On 1/24/21 9:12 AM, Jonathan Cameron wrote:
> On Thu, 21 Jan 2021 13:14:31 -0600
> Dan Murphy <[email protected]> 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 <[email protected]>
> I'm not really following the changes below..
I will have to dig into it deeper our HW team reported this.
Patch 1/2 is relevant and is not dependent on this patch
Dan
On Thu, 21 Jan 2021 13:14:30 -0600
Dan Murphy <[email protected]> wrote:
> Fix start and stop conversion commands. The proper command is not be
> sent.
>
> Fixes: ("e717f8c6dfec iio: adc: Add the TI ads124s08 ADC code")
That's not the right format for a fixes, tag. I fixed it whilst applying.
> Signed-off-by: Dan Murphy <[email protected]>
I've not applied this because there is another START_CONV in the
driver and I'm not sure that one is right either. It looks to be
a very similar code path to the one you are fixing here.
Thanks,
Jonathan
> ---
> drivers/iio/adc/ti-ads124s08.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/adc/ti-ads124s08.c b/drivers/iio/adc/ti-ads124s08.c
> index b4a128b19188..f05d4e0e1c9d 100644
> --- a/drivers/iio/adc/ti-ads124s08.c
> +++ b/drivers/iio/adc/ti-ads124s08.c
> @@ -237,7 +237,7 @@ static int ads124s_read_raw(struct iio_dev *indio_dev,
> goto out;
> }
>
> - ret = ads124s_write_cmd(indio_dev, ADS124S08_START_CONV);
> + ret = ads124s_write_cmd(indio_dev, ADS124S08_CMD_START);
> if (ret) {
> dev_err(&priv->spi->dev, "Start conversions failed\n");
> goto out;
> @@ -251,7 +251,7 @@ static int ads124s_read_raw(struct iio_dev *indio_dev,
>
> *val = ret;
>
> - ret = ads124s_write_cmd(indio_dev, ADS124S08_STOP_CONV);
> + ret = ads124s_write_cmd(indio_dev, ADS124S08_CMD_STOP);
> if (ret) {
> dev_err(&priv->spi->dev, "Stop conversions failed\n");
> goto out;