iio: hid-sensor-hub: Implement batch mode
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Sat, 8 Apr 2017 02:22:06 +0000 (19:22 -0700)
committerJonathan Cameron <jic23@kernel.org>
Tue, 16 May 2017 18:44:01 +0000 (19:44 +0100)
commit138bc7969c24c6cbba28e919c2376ad10a46fc60
tree0de82ecba4edebb0bcd40fc10663b952027bdf24
parent371894f5d1a00cd6c03aab0beb9789b474ea46b0
iio: hid-sensor-hub: Implement batch mode

HID sensor hubs using Integrated Senor Hub (ISH) has added capability to
support batch mode. This allows host processor to go to sleep for extended
duration, while the sensor hub is storing samples in its internal buffers.

'Commit f4f4673b7535 ("iio: add support for hardware fifo")' implements
feature in IIO core to implement such feature. This feature is used in
bmc150-accel-core.c to implement batch mode. This implementation allows
software device buffer watermark to be used as a hint to adjust hardware
FIFO.

But HID sensor hubs don't allow to change internal buffer size of FIFOs.
Instead an additional usage id to set "maximum report latency" is defined.
This allows host to go to sleep upto this latency period without getting
any report. Since there is no ABI to set this latency, a new attribute
"hwfifo_timeout" is added so that user mode can specify a latency.

This change checks presence of usage id to get/set maximum report latency
and if present, it will expose hwfifo_timeout.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Documentation/ABI/testing/sysfs-bus-iio
drivers/iio/common/hid-sensors/hid-sensor-attributes.c
drivers/iio/common/hid-sensors/hid-sensor-trigger.c
include/linux/hid-sensor-hub.h
include/linux/hid-sensor-ids.h