2019-09-10 19:05:10

by Stefan Popa

[permalink] [raw]
Subject: [PATCH v2 2/3] iio: accel: adxl372: Fix push to buffers lost samples

One in two sample sets was lost by multiplying fifo_set_size with
sizeof(u16). Also, the double number of available samples were pushed to
the iio buffers.

Signed-off-by: Stefan Popa <[email protected]>
---
Changes in v2:
- Nothing changed.

drivers/iio/accel/adxl372.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index 7de5e1b..33edca8 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -553,8 +553,7 @@ static irqreturn_t adxl372_trigger_handler(int irq, void *p)
goto err;

/* Each sample is 2 bytes */
- for (i = 0; i < fifo_entries * sizeof(u16);
- i += st->fifo_set_size * sizeof(u16))
+ for (i = 0; i < fifo_entries; i += st->fifo_set_size)
iio_push_to_buffers(indio_dev, &st->fifo_buf[i]);
}
err:
--
2.7.4


2019-09-15 13:56:49

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] iio: accel: adxl372: Fix push to buffers lost samples

On Tue, 10 Sep 2019 17:44:21 +0300
Stefan Popa <[email protected]> wrote:

> One in two sample sets was lost by multiplying fifo_set_size with
> sizeof(u16). Also, the double number of available samples were pushed to
> the iio buffers.
>
> Signed-off-by: Stefan Popa <[email protected]>
Applied with same fixes tag as previous and cc stable.

> ---
> Changes in v2:
> - Nothing changed.
>
> drivers/iio/accel/adxl372.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
> index 7de5e1b..33edca8 100644
> --- a/drivers/iio/accel/adxl372.c
> +++ b/drivers/iio/accel/adxl372.c
> @@ -553,8 +553,7 @@ static irqreturn_t adxl372_trigger_handler(int irq, void *p)
> goto err;
>
> /* Each sample is 2 bytes */
> - for (i = 0; i < fifo_entries * sizeof(u16);
> - i += st->fifo_set_size * sizeof(u16))
> + for (i = 0; i < fifo_entries; i += st->fifo_set_size)
> iio_push_to_buffers(indio_dev, &st->fifo_buf[i]);
> }
> err: