Adds sensor direct report mode support to multihal. Limited
by hal API only the first HAL in configuration list can support
sensor direct report.
Sensor operation parameter support in multihal module is added in
this CL.
In treblized device multihal is enabled by default and implementation
is included in default implementation. Remove multihal shared lib
generation in device specified PRODUCT_FULL_TREBLE.
Test: warning message shows up on device that specified both
PRODUCT_FULL_TREBLE and USE_SENSOR_MULTI_HAL flags.
Test: cts test passes
Change-Id: I868e7c1ce727370b333f80bbfe737fb106f6d106
Merged-In: I868e7c1ce727370b333f80bbfe737fb106f6d106
Move default multihal configuration file path to
/vendor/etc/sensors/hals.conf. Retained old definition but changed
varible name to mark it deprecated. get_so_paths() is modified
to search both new and old path for configuration file.
MULTI_HAL_CONFIG_FILE_PATH is only used by hidl default
implementation at this moment outside multihal module.
Bug: 35947802
Test: build ok, sensor works on 2017 devices
Change-Id: I443ff71fa194383646108c8eb0c5438d150a5886
Dropping support for Sensor HAL version 1.0.
Sensor HALs version 1.1 and 1.2 are already depracated.
This makes version 1.3 as the earliest supported version.
Test: Sensors CTS tests still pass.
Change-Id: I806ce1d0d9277cbb312d9f90749975420cef2109
Add get_multi_hal_module_info() to support using multi-hal
functionality within the HIDL sensor implementation.
Move externally relevant constants and prototypes to new multihal.h
file.
Add new Android.bp for Treble to build multi-hal into a static
library that is now included by the HIDL sensor implementation.
Bug: 32022308
Change-Id: I2b3afa9ff1e0a2e5a098e643dde99ec86bb88206
MultiHal was not properly fielding errors from the poll() calls of
sub-HALs. Propagating errors received from sub-HALs up to Sensor
Services causes Sensor Services to abort, so instead of propagating
the error up to Sensor Services, the MultiHal logs a message to
logcat to fix the sub-HAL problem.
Bug: 30060537
Change-Id: I6e20c193a2f2d228da48cf3d5a23e439eaf663df
Changed module name back to sensors.$(TARGET_DEVICE) to assure
proper load ordering.
Fix use of GNU old-style field designator extension and a couple
type-mismatched comparisons.
Bug: 28251347
Change-Id: I7cf6cc1f78085b8b254729cd8ec42bdb20ea3f81
Increased the size of the sensor event transfer queue from 20 to
36 sensor events. This size now matches Sensor Services buffer size
that it passes to poll() for reading events and will allow the
multihal to transfer the maximum events possible per poll cycle.
Change-Id: I55459ea0a70b9da848d3d3d43590050d71c53e28
To get multi hal working on both 32 & 64 bit targets,
removing hardcoded paths & checks in multi HAL.
Sensor HAL libs must be installed path that is available through
LD_LIBRARY_PATH.
/system/lib & /system/vendor/lib for 32-bit targets.
/system/lib64 & /system/vendor/lib64 for 64-bit targets.
Change-Id: Ib1c1f25f08855c4584d53cc04fbe82a3a768b180
Ignore calls to any HALs that are not 1_0 or 1_3 compliant.
Fix an unused parameter compiler warning.
Bug: 17645248
Change-Id: Ia50f7512dfe35f37973440bba84e1b1b177a7bd3
If an event packet is read containing an unknown sensor handle,
don't pass it on to Sensor Services. Drop it on the floor instead
as it's causing Sensor Services to crash.
Moved read of queue size in sensors_poll_context_t::poll() to post
queue mutex grab for safety.
Bug: 15285345
Change-Id: I2ebc0f8591a1ae60f09bf9599b8321c5a3dfae69
MultiHal will now accept sensor HALs listed in the hals.conf file that
reside in either /system/lib/hw or /system/vendor/lib.
Bug: 14994424
Change-Id: I13f17352b97c36b97cfbcee8c9b6a0d2e1ed6dc3
This prevents crashes and undefined behavior when someone
calls sensor HAL methods with nonexistent handles.
It also adds checks and warnings if bad sensor HALs provide
garbage sensor handles in their sensor events.
Tested by making sure pedometer and tilt still work.
Bug: 13513595
Change-Id: Ie1489d3f2972bec82ee1c73189e532f6658d1eca
Fix a null pointer dereference bug that caused the multihal to crash
in an endless loop continuously trying to open a sensor HAL when it
reports back an error.
Change-Id: I6d82e8fdd9acde53f378a5fb3dfdb02c39d7b433
Squashed commit of:
Move sensors multi HAL to libhardware
Added a SensorEventQueue, a circular buffer meant for reading with one thread
and polling a subhal with another. The writing thread gets access to pointers
in the internal buffer. This design avoids a memcpy on write when the multihal
fetches subhal events using poll().
Unit-tests include multithreaded reading and writing lots of events, in
random-sized chunks.
This is not used by the multihal yet. That will be a different CL.
MultiHal multithreaded polling
Tests SensorEventQueue I/O when the queue is full.
Reduced debug logging in multihal.
deactivated multihal logspam, made warnings warnings, left critical startup info
Removed unneeded linux/input.h includes, to fix Mac SDK build
Change-Id: I1e35508949df98a1acef7a4a2d012eea87b4a5eb