Minimizes intermittent failures when a device is in sniff mode.
Fixes: 245881714
Test: enable/disable with spatial audio feature enabled
Change-Id: I5fb5b9ff37a6f8a245678c87ee82e2032dc845f2
The new 6.0 kernel headers changed all variable length
structures from [0] to []. This causes a clang warning to
trigger, so rewrite the affected data structure using a
union to avoid having a variable sized array in the middle
of the structure.
Test: Builds.
Change-Id: I60c6d31a93566c4aa9f7501f39f88543ee76ce91
specifically, interpret HID data value as unsigned if minValue is
positive
Fix: 238391386
Test: See "Testing Done" in comments in ag/19889364
Change-Id: I715c2189ad90ee71e022ae131354354157694556
Correctly pass errno to strerror() rather than the return value, which
will always be -1 on error.
Fixes: 245585769
Test: build only
Change-Id: Iae1170949f3b2a0286ef8b9ddf26c74a6cee6783
Bug: 228369656
Test: Used uhid-sample to add a dynamic sensor and verified correct
min/max sample rate.
Change-Id: I88a1bec26a03a97ee7a3c590d2601151b89ee545
Bug: 226012902
Test: Used uhid-sample to add a dynamic sensor and verified it can be
sampled.
Test: Simulated start sampling ioctl timeout and verified operation
completes with a timeout and eventually cleans up.
Test: Simulated start sampling ioctl timeout with device removal before
completion and verified operation completes with a timeout and
eventually cleans up.
Change-Id: I9a957bc1e4000b2c587278146ecbe6e903010616
Also, don't require 16-bit strings for HID name, manufacturer, and
unique ID. Also change dump of HID unique ID to be in hex.
Bug: 213483369
Test: Verified that the standard Android head tracker sensor uses the
HID unique ID for the sensor UUID.
Test: Verified that custom Android sensors use a fabricated UUID.
Change-Id: I125f84187868543dccab758e22dce744c013578e
Bug: 207008609
Test: Verified dynamic sensor sampling with proposed standard Android
head tracker.
Change-Id: I163b79c2c99f02961adebcb5dcb7e39603944e24
Bug: 205041452
Test: Verified that multiple subscriptions can be made with sensor_test
to a dynamic sensor without hanging.
Change-Id: Ie7671df8294bee04a0ebe1940242c2a83105f897
Bug: 195964858
Test: Paired a Sony PS4 controller and verified it can be sampled as an
accelerometer. The first subscription always returns all 0's, but
subsequent subscriptions return proper accel samples.
Change-Id: I4bbc4695c988f600a62502f9fccabaa68f42c72b
Bug: 195964858
Test: Paired a Sony PS4 controller and verified it is present in sensor
list as an accelerometer. It can't be sampled, but the LSM6DSR
accelerometer may still be sampled.
Change-Id: I182291cebdf84e5f6cd44d16debd6a07c4bc5281
Bug: 195964858
Test: Verified dynamic sensor manager is present in sensor list and that
no SELinux violations occur.
Test: See details in testing done comment in
https://googleplex-android-review.git.corp.google.com/15874906 .
Change-Id: I5d587dc46bdec66c3162bf222d36b285b8d2ca3d
Bug: 195964858
Test: Verified dynamic sensor manager is present in sensor list.
Test: Test: See details in testing done comment in
https://googleplex-android-review.git.corp.google.com/15831086 .
Change-Id: Ia34596d79f8a6c6985b35dcae75126e456f6009e
Bug: 195964858
Test: Verified the dynamic sensor sub-HAL initializes and non-dynamic
sensors can sample.
Test: See details in testing done comment in
https://googleplex-android-review.git.corp.google.com/15806307 .
Change-Id: I59934814cc61c7319731eb840ff2132a8c5ce241
C++20 is stricter about member ordering in designated initializers than
C99.
Bug: 139945549
Test: mm
Change-Id: I045da46821280e720286a25a0c96b5750d1ad05e
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
-Wimplicit-fallthrough was printing warnings for these, they look
like real errors. Fix them and re-enable the error.
Test: treehugger
Change-Id: I818e18a995760f17b85b4c72ee577e531fa2a601
It will be a global error by default.
Test: make checkbuild
Bug: 112564944
Change-Id: Ifdcaca758036cf9624f79befb65a1cbbd2f9b010
Exempt-From-Owner-Approval: do not block on new warnings
include headers missing headers from libstagefright_foundation and
libhardware.
Bug: 33241851
Test: cd hardware/libhardware/modules/sensors/ && mma -j64 -k
BOARD_VNDK_VERSION=current
Change-Id: Ie05de74207d7c31598d2cad55ea6b7b8acace0e4
Fix an error in polling of inotify fd to avoid 100% CPU usage.
Refactored code to use android Looper.
Fix a string count accounting error that causes unpaired decStrong
crashing sensor hidl service.
Bug: 37719320
Bug: 37714835
Test: no longer have 100% CPU usage.
Test: tested connection of a few mouse/keyboard/usb disk/gnubby
no crash observed.
Test: cts still working properly after fix.
Change-Id: Ibaa026151e5e4919d8dd134c16f5865d5e30ef8a
Implemented HID dynamic sensor using linux hidraw driver and
HidUtils. Support the following cases:
1) HID Sensor spec defined accelerometer, gyroscope, magnetometer
and orientation (quaternion).
2) Android defined type sensors (HID sensor custom type): ambient
temperature, barometer, light and heart rate sensor.
3) Android custom type sensor (based on HID sensor custom type).
Test: run tests/examples in test/
Test: test with a USB HID hardware (launchpad sensor) and marlin
Bug: 37482951
Bug: 31026607
Change-Id: I9d679fb34d15324a9df1cf19647ea638fd1a0e68
An HID utility library for constructing HID based dynamic sensor.
Primary functionality is in HidParser.h, which parses HID
descriptor into useful data structures. Supporting classes and
structures can be used individually as well.
Test: run tests in HidUtils/test
Bug: 37482274
Change-Id: Icfb59414bb6a1e7b6cdd1078a1a83820e70bbef8
Library to handle dynamic sensor connection. There are two way to use
this: as hal extension or standalone hal module.
In hal extension mode: add libdynamic_sensor_ext in dependency of hal,
instantiate DynamicSensorManager with appropriate parameters. Then
for all sensor requests, if the handle is owned by dynamic sensor
manager, forward the request.
In standalone mode, add sensor.dynamic_sensor_hal into device make
file. Usually, this also means multihal is necessary. Add
sensor.dynamic_sensor_hal into multihal configuration file.
A dummy sensor module is included for testing.
Test: tested with cts dynamics sensor related test and demo app.
also verified sensor basic operation with sensor logger.
Change-Id: I16612935fc21b06c173aca875401ece37c6bde01
Library to handle dynamic sensor connection. There are two way to use
this: as hal extension or standalone hal module.
In hal extension mode: add libdynamic_sensor_ext in dependency of hal,
instantiate DynamicSensorManager with appropriate parameters. Then
for all sensor requests, if the handle is owned by dynamic sensor
manager, forward the request.
In standalone mode, add sensor.dynamic_sensor_hal into device make
file. Usually, this also means multihal is necessary. Add
sensor.dynamic_sensor_hal into multihal configuration file.
This CL implements the dynamic sensor manager framework. Sensor daemon
will be added in follow up CL.
Test: test compile (functionality test done in a follow up CL)
Change-Id: I3b96ee135d8dbe3e199af01bed4b61637358803e