On Tue, 2019-03-19 at 12:14 +1100, Alexey Kardashevskiy wrote: > [...] > Refer to iio buffer interface for how to read from buffers by > > enabling > > channels. tools/iio/iio_generic_buffer.c is an example how to use. > > > No, my question was about the kernel side of the device, not the > userspace, it is late to look there - the data seems to be broken. I > am > interested to see how these buffers are filled with data and compare > to > what linux exposes via in_accel_x_raw sysops properties. Oh well, it > is > debugging time them. kernel processing is done in multiple layers, from transport->hid- sensor-hub.c->hid-sensor-accel-3d.c The kernel is just sending what FW is sending in buffer mode. FW is sending 0,0,0 for x,y,z. This is the way FW is telling that it completed a batch. Basically the user space could have gone to sleep by informing that don't bother it for x amount of time or samples. It seems that this platform is enabling batch mode, whether user space wants it or not. Try this change iio-sensor-proxy. From raw data diff --git a/src/drv-iio-buffer-accel.c b/src/drv-iio-buffer-accel.c index ebf94de..84a83a3 100644 --- a/src/drv-iio-buffer-accel.c +++ b/src/drv-iio-buffer-accel.c @@ -65,6 +65,11 @@ process_scan (IIOSensorData data, DrvData *or_data) tmp.y = accel_y; tmp.z = accel_z; + if (tmp.x == 0 && tmp.y == 0 && tmp.z == 0) { + g_debug("batch complete\n"); + return 0; + } + if (!apply_mount_matrix (or_data->mount_matrix, &tmp)) g_warning ("Could not apply mount matrix"); Thanks, Srinivas > > >
Attachment:
smime.p7s
Description: S/MIME cryptographic signature