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@kernel.org>
Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
**/
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);
}