diff options
author | Shivank Garg <quic_shivankg@quicinc.com> | 2022-10-14 23:46:26 +0530 |
---|---|---|
committer | Shivank Garg <quic_shivankg@quicinc.com> | 2022-10-19 18:13:00 +0000 |
commit | ab978d4a7c1624e4c6022582b3928df0bf0e713c (patch) | |
tree | db0add8d0a311ca41a1c7909e34fbd7fd90aa674 | |
parent | b2d6cc121298e34a4fdceca3081ae56742ff8d50 (diff) |
dynamic_sensor: add property to control sensor operation timeout
- Observed occasional sensor timeout due to delayed response from head tracking sensor
- It can be rectified with a slightly higher timeout value
- Added ability to tune vendor specific sensor timeout
CRs-Fixed: 3313567
Change-Id: I4cb91270a0124a16851d42abe50238839ad3f357
-rw-r--r-- | modules/sensors/dynamic_sensor/DynamicSensorManager.cpp | 5 | ||||
-rw-r--r-- | modules/sensors/dynamic_sensor/DynamicSensorManager.h | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/modules/sensors/dynamic_sensor/DynamicSensorManager.cpp b/modules/sensors/dynamic_sensor/DynamicSensorManager.cpp index efac5e95..85f8001e 100644 --- a/modules/sensors/dynamic_sensor/DynamicSensorManager.cpp +++ b/modules/sensors/dynamic_sensor/DynamicSensorManager.cpp @@ -22,6 +22,7 @@ #include <utils/Log.h> #include <utils/SystemClock.h> +#include <cutils/properties.h> #include <cassert> @@ -63,6 +64,10 @@ DynamicSensorManager::DynamicSensorManager( SENSOR_FLAG_SPECIAL_REPORTING_MODE | SENSOR_FLAG_WAKE_UP, { NULL, NULL } }; + + kSensorOpTimeout = std::chrono::milliseconds( + (uint32_t)property_get_int32( + "vendor.dynamic_sensor.setup.timeout.ms", 900)); } DynamicSensorManager::~DynamicSensorManager() { diff --git a/modules/sensors/dynamic_sensor/DynamicSensorManager.h b/modules/sensors/dynamic_sensor/DynamicSensorManager.h index b8a73203..e5ab2b43 100644 --- a/modules/sensors/dynamic_sensor/DynamicSensorManager.h +++ b/modules/sensors/dynamic_sensor/DynamicSensorManager.h @@ -127,8 +127,7 @@ private: // Sensor operation queue. Calls to the sensor HAL must complete within 1 // second. - static constexpr std::chrono::milliseconds - kSensorOpTimeout = std::chrono::milliseconds(900); + std::chrono::milliseconds kSensorOpTimeout = std::chrono::milliseconds(900); std::mutex mSensorOpQueueLock; std::queue<std::pair<uint64_t, std::shared_future<int>>> mSensorOpQueue; uint64_t mNextSensorOpIndex = 0; |