summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShivank Garg <quic_shivankg@quicinc.com>2022-10-14 23:46:26 +0530
committerShivank Garg <quic_shivankg@quicinc.com>2022-10-19 18:13:00 +0000
commitab978d4a7c1624e4c6022582b3928df0bf0e713c (patch)
treedb0add8d0a311ca41a1c7909e34fbd7fd90aa674
parentb2d6cc121298e34a4fdceca3081ae56742ff8d50 (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.cpp5
-rw-r--r--modules/sensors/dynamic_sensor/DynamicSensorManager.h3
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;