Commit Graph

11 Commits

Author SHA1 Message Date
Peng Xu
20c7ece356 Avoid calling non-exist set_mode hal function
Add gating condition before calling the hal function pointers for
set_mode and inject_sensor_data.

Bug: 36073404
Test: compiles
Change-Id: I9c194c1a286fb64304b4329f43c3de2a3d6ae939
2017-03-17 11:05:49 -07:00
Ashutosh Joshi
2af9dacc3a Do not crash fatally when recovering from system server restart.
Log(FATAL) is creating lots of nuisance bugs.

Test: Sensor service continues to recover from a system server
      restart and sensors are available.
      No crash log is created.
Bug: 36094522
Bug: 36115683

Change-Id: Idc2d086709dc2132c98aab806aa44728fbdaa189
2017-03-10 12:53:31 -08:00
Peng Xu
ab7884fcbd Prevent framework from stucking at communicating with HIDL HAL
Sensor hidl service has two threads quota. One is used for sending
commands down to hardware, and the other for retrieving sensor events
from hardware. The second is usually blocked on poll().

When system server quits abnormaly, the poll thread may still be
blocked in HAL implementation and holding that thread. There won't be
enough available threads for framework sensor service to function
correctly when system service restarts, resulting in a deadlock at
enableSensor() or getService() until the hidl service is restarted.

This fix detects a second connection from framework sensor service
and kills the hidl service in case that happens. The system will restart
the hidl service with clean state and return system to normal operation.

Bug: 35727090
Bug: 35843387
Bug: 35702298
Bug: 35919167
Bug: 35848670
Bug: 35903635

Test: Restart device works in normal case.
      Restart also works with the following scenario (reproducing error)
      "adb root && adb shell dumpsys sensorservice restrict random &&
       adb shell stop && adb shell start"

Change-Id: Ibffa87d93b2d24af2803be9281e7141d0a221e3e
2017-03-02 16:14:57 -08:00
Peng Xu
84660153a9 Merge "[sensors] Default implementation and vts of direct report" 2017-01-19 00:56:04 +00:00
Peng Xu
89df2e7064 [sensors] Default implementation and vts of direct report
Added support for newly added HAL function for sensor event direct
report feature, replace dummy implementation with funtional ones for
the following:

  * registerDirectChannel
  * unregisterDirectChannel
  * configDirectReport

Added a vts test case for direct report.

Added new offset definition to types.hal. This will not affect
existing client/calling code.

Bug: 30985702
Bug: 32022776

Test: vts pass

Change-Id: Ie5e3cddd7c37664e8c59d69cf70aaa1310fd3f58
2017-01-18 14:28:21 -08:00
Peng Xu
cefa91bb51 [sensors] Add parameter check to poll()
Check maxCount parameter so that it will not allocate overly large
amount of memory if input parameter is bad.

Bug: 32953589
Test: build and pass vts
Change-Id: Ia19e0315ab1623b8b6580889c1e058a19e6c9670
2017-01-18 13:26:37 -08:00
Peng Xu
1f12c7a338 [sensors] Minor tuning of hal definition
* Swap GEOMAGNETIC_FIELD with MAGNETIC_FIELD for more accurate
    definition.
  * Remove redundunt prefixes in various enum definitions.
  * Clarify that string type will be removed for well defined sensor
    types. This avoid dependency on strings defined in sensors.h.
  * Added SensorFlagShift enum.
  * Remove unused flag parameter in batch.
  * Remove legacy setDelay function.
  * Change the type of sensor flag to bitfield<SensorFlagBits>, and
    use uint32_t since only low 32 bits are used.

Test: all sensor works(in marlin), tested with sensorlogger.

Change-Id: I93a4d13c5d2e054857d1e400d15002aeb9a47368
2017-01-14 05:42:13 +00:00
Peng Xu
0873e641cf [sensors] Format, wording and naming changes
* replace all "should" description with more precise wording.
 * replace "aidl" name in parameter to avoid confusion.
 * reformat files and method description.

Test: m -j32
Change-Id: Id1129b816b3c364c76f0a24fabba1e1418dbd8db
2017-01-12 01:53:42 +00:00
Peng Xu
0f0df7ed0a [sensors] new functions and types for direct report mode
Added functions:

  * registerDirectChannel
  * unregisterDirectChannel
  * configDirectReport

Added structs and enums related to direct report functionality.

Stub default implementation is also included.

Test: compiles and runs
Bug: 30985702
Change-Id: Ia542673e2b180e0aa62c1374cf8c1671bf2f5721
2017-01-10 15:19:59 -08:00
Nick Vaccaro
d133e4c326 Sensors: MultiHal: Add HIDL-based Multi-Hal
Add the ability to use more than a single sensor HAL
to the HIDL sensor service.

Bug: 32022308
Change-Id: I99866adbbbee6d93350327aaaba136682ae069ae
2016-12-16 11:12:11 -08:00
Andreas Huber
db49a41180 sensor HAL v3
Bug: 32021636
Test: no
Change-Id: I7a4c5c47f8621209daef5af4d0dcbb806a236e41
2016-10-13 09:21:46 -07:00