linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] iio: accel: adxl372: Fix/remove limitation for FIFO samples
@ 2019-09-03  9:18 Stefan Popa
  2019-09-08  9:24 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Stefan Popa @ 2019-09-03  9:18 UTC (permalink / raw)
  To: jic23
  Cc: Michael.Hennerich, knaack.h, lars, pmeerw, linux-kernel,
	linux-iio, stefan.popa

Currently, the driver sets the FIFO_SAMPLES register with the number of
sample sets (maximum of 170 for 3 axis data, 256 for 2-axis and 512 for
single axis). However, the FIFO_SAMPLES register should store the number
of samples, regardless of how the FIFO format is configured.

Signed-off-by: Stefan Popa <stefan.popa@analog.com>
---
 drivers/iio/accel/adxl372.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index 055227cb..adec37b 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -805,15 +805,6 @@ static int adxl372_buffer_postenable(struct iio_dev *indio_dev)
 	st->fifo_format = adxl372_axis_lookup_table[i].fifo_format;
 	st->fifo_set_size = bitmap_weight(indio_dev->active_scan_mask,
 					  indio_dev->masklength);
-	/*
-	 * The 512 FIFO samples can be allotted in several ways, such as:
-	 * 170 sample sets of concurrent 3-axis data
-	 * 256 sample sets of concurrent 2-axis data (user selectable)
-	 * 512 sample sets of single-axis data
-	 */
-	if ((st->watermark * st->fifo_set_size) > ADXL372_FIFO_SIZE)
-		st->watermark = (ADXL372_FIFO_SIZE  / st->fifo_set_size);
-
 	st->fifo_mode = ADXL372_FIFO_STREAMED;
 
 	ret = adxl372_configure_fifo(st);
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/3] iio: accel: adxl372: Fix/remove limitation for FIFO samples
  2019-09-03  9:18 [PATCH 1/3] iio: accel: adxl372: Fix/remove limitation for FIFO samples Stefan Popa
@ 2019-09-08  9:24 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2019-09-08  9:24 UTC (permalink / raw)
  To: Stefan Popa
  Cc: Michael.Hennerich, knaack.h, lars, pmeerw, linux-kernel, linux-iio

On Tue, 3 Sep 2019 12:18:07 +0300
Stefan Popa <stefan.popa@analog.com> wrote:

> Currently, the driver sets the FIFO_SAMPLES register with the number of
> sample sets (maximum of 170 for 3 axis data, 256 for 2-axis and 512 for
> single axis). However, the FIFO_SAMPLES register should store the number
> of samples, regardless of how the FIFO format is configured.
> 
> Signed-off-by: Stefan Popa <stefan.popa@analog.com>

This st->watermark field is also used to provide the hwfifo_watermark
sysfs attribute value.   That value should be 'sets' not individual
samples.  I'm not sure that's the case here.  Note this also effects
the max and min values which will change depending on which channels
are enabled.

I've just checked the docs and watermark is clearly stated to be in
scans but the hwfifo_watermark is not.   Which is unfortunate if
there are drivers interpreting it as being in samples as a result.

I haven't looked yet to see what other drivers have this interpreted
as...

Gah.

Jonathan


> ---
>  drivers/iio/accel/adxl372.c | 9 ---------
>  1 file changed, 9 deletions(-)
> 
> diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
> index 055227cb..adec37b 100644
> --- a/drivers/iio/accel/adxl372.c
> +++ b/drivers/iio/accel/adxl372.c
> @@ -805,15 +805,6 @@ static int adxl372_buffer_postenable(struct iio_dev *indio_dev)
>  	st->fifo_format = adxl372_axis_lookup_table[i].fifo_format;
>  	st->fifo_set_size = bitmap_weight(indio_dev->active_scan_mask,
>  					  indio_dev->masklength);
> -	/*
> -	 * The 512 FIFO samples can be allotted in several ways, such as:
> -	 * 170 sample sets of concurrent 3-axis data
> -	 * 256 sample sets of concurrent 2-axis data (user selectable)
> -	 * 512 sample sets of single-axis data
> -	 */
> -	if ((st->watermark * st->fifo_set_size) > ADXL372_FIFO_SIZE)
> -		st->watermark = (ADXL372_FIFO_SIZE  / st->fifo_set_size);
> -
>  	st->fifo_mode = ADXL372_FIFO_STREAMED;
>  
>  	ret = adxl372_configure_fifo(st);


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-09-08  9:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-03  9:18 [PATCH 1/3] iio: accel: adxl372: Fix/remove limitation for FIFO samples Stefan Popa
2019-09-08  9:24 ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).