[PATCH 04/18] staging:iio:accel:sca3000 Fix clearing of flag + setting of size of scan.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Not clearing the stuff_to_read flag can lead to a false flag being set
on restarting the buffer if the data was not all read the previous time.

The size of the scan is needed to ensure the function
iio_buffer_read_first_n_outer actually tries to read the data.

This stuff has been broken for some time so not stable material.

Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
---
 drivers/staging/iio/accel/sca3000.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/staging/iio/accel/sca3000.c b/drivers/staging/iio/accel/sca3000.c
index 36a52d02ee0e..8af7d83e658d 100644
--- a/drivers/staging/iio/accel/sca3000.c
+++ b/drivers/staging/iio/accel/sca3000.c
@@ -1491,6 +1491,19 @@ error_ret:
  **/
 static int sca3000_hw_ring_preenable(struct iio_dev *indio_dev)
 {
+	/*
+	 * Set stuff to read to indicate no data present.
+	 * Need for cases where the interrupt had fired at the
+	 * end of a cycle, but the data was never read.
+	 */
+	indio_dev->buffer->stufftoread = 0;
+	/*
+	 * Needed to ensure the core will actually read data
+	 * from the device rather than assuming no channels
+	 * are enabled.
+	 */
+	indio_dev->buffer->bytes_per_datum = 6;
+
 	return __sca3000_hw_ring_state_set(indio_dev, 1);
 }
 
-- 
2.10.0

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux