diff mbox series

iio: adc: ad7606: fix reading unnecessary data from device

Message ID 20191104162634.5394-1-beniamin.bia@analog.com (mailing list archive)
State New, archived
Headers show
Series iio: adc: ad7606: fix reading unnecessary data from device | expand

Commit Message

Beniamin Bia Nov. 4, 2019, 4:26 p.m. UTC
When a conversion result is being read from ADC, the driver reads the
number of channels + 1 because it thinks that IIO_CHAN_SOFT_TIMESTAMP
is also a physical channel. This patch fixes this issue.

Fixes: 552a21f35477 ("staging: iio: adc: ad7606: Move out of staging")
Reported-by: Robert Wörle <rwoerle@mibtec.de>
Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
---
 drivers/iio/adc/ad7606.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jonathan Cameron Nov. 10, 2019, 10:46 a.m. UTC | #1
On Mon, 4 Nov 2019 18:26:34 +0200
Beniamin Bia <beniamin.bia@analog.com> wrote:

> When a conversion result is being read from ADC, the driver reads the
> number of channels + 1 because it thinks that IIO_CHAN_SOFT_TIMESTAMP
> is also a physical channel. This patch fixes this issue.
> 
> Fixes: 552a21f35477 ("staging: iio: adc: ad7606: Move out of staging")
> Reported-by: Robert Wörle <rwoerle@mibtec.de>
> Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
Applied to the fixes-togreg branch of iio.git and marked for stable.

We are at that point in the cycle where I 'might' move this into
the togreg branch for the merge window.  All depends on what Linus
says in his rc7 email that'll probably be out later today.
Previously he hinted we'd have an rc8 this time. If that happens
I'll do one last pull request and hence take the queued up fixes
in with that for the merge window.  I don't have anything critical
enough to do a fixes pull this later in the cycle.

Thanks,

Jonathan

> ---
>  drivers/iio/adc/ad7606.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c
> index f5ba94c03a8d..e4683a68522a 100644
> --- a/drivers/iio/adc/ad7606.c
> +++ b/drivers/iio/adc/ad7606.c
> @@ -85,7 +85,7 @@ static int ad7606_reg_access(struct iio_dev *indio_dev,
>  
>  static int ad7606_read_samples(struct ad7606_state *st)
>  {
> -	unsigned int num = st->chip_info->num_channels;
> +	unsigned int num = st->chip_info->num_channels - 1;
>  	u16 *data = st->data;
>  	int ret;
>
Jonathan Cameron Dec. 8, 2019, 6:10 p.m. UTC | #2
On Sun, 10 Nov 2019 10:46:25 +0000
Jonathan Cameron <jic23@kernel.org> wrote:

> On Mon, 4 Nov 2019 18:26:34 +0200
> Beniamin Bia <beniamin.bia@analog.com> wrote:
> 
> > When a conversion result is being read from ADC, the driver reads the
> > number of channels + 1 because it thinks that IIO_CHAN_SOFT_TIMESTAMP
> > is also a physical channel. This patch fixes this issue.
> > 
> > Fixes: 552a21f35477 ("staging: iio: adc: ad7606: Move out of staging")
> > Reported-by: Robert Wörle <rwoerle@mibtec.de>
> > Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>  
> Applied to the fixes-togreg branch of iio.git and marked for stable.
I was just about to send the pull including this and was checking the
fixes tags.  The commit you have here doesn't seem to exist.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/iio/adc/ad7606.c?id=2985a5d88455a3edd51358fc77f61b684d0e9265
Seems to be the right one.

I've fixed it up.

Jonathan

> 
> We are at that point in the cycle where I 'might' move this into
> the togreg branch for the merge window.  All depends on what Linus
> says in his rc7 email that'll probably be out later today.
> Previously he hinted we'd have an rc8 this time. If that happens
> I'll do one last pull request and hence take the queued up fixes
> in with that for the merge window.  I don't have anything critical
> enough to do a fixes pull this later in the cycle.
> 
> Thanks,
> 
> Jonathan
> 
> > ---
> >  drivers/iio/adc/ad7606.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c
> > index f5ba94c03a8d..e4683a68522a 100644
> > --- a/drivers/iio/adc/ad7606.c
> > +++ b/drivers/iio/adc/ad7606.c
> > @@ -85,7 +85,7 @@ static int ad7606_reg_access(struct iio_dev *indio_dev,
> >  
> >  static int ad7606_read_samples(struct ad7606_state *st)
> >  {
> > -	unsigned int num = st->chip_info->num_channels;
> > +	unsigned int num = st->chip_info->num_channels - 1;
> >  	u16 *data = st->data;
> >  	int ret;
> >    
>
diff mbox series

Patch

diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c
index f5ba94c03a8d..e4683a68522a 100644
--- a/drivers/iio/adc/ad7606.c
+++ b/drivers/iio/adc/ad7606.c
@@ -85,7 +85,7 @@  static int ad7606_reg_access(struct iio_dev *indio_dev,
 
 static int ad7606_read_samples(struct ad7606_state *st)
 {
-	unsigned int num = st->chip_info->num_channels;
+	unsigned int num = st->chip_info->num_channels - 1;
 	u16 *data = st->data;
 	int ret;