From fea2d26f964f2e8065e462429766fd7dcf227275 Mon Sep 17 00:00:00 2001 From: Ashutosh Joshi Date: Wed, 19 Apr 2017 23:27:49 -0700 Subject: Clamp reported power for each sensor to 1 microAmp. Avoids sensors reporting zero power ! Bug: 28980713 Test: Ensure thar power reported in greater than or equal to 1 microAmperes for all sensors. Change-Id: I01b40c8a3701d56ded7dcc82e4c7a85b9a8ddc00 --- services/sensorservice/SensorDevice.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp index 080c02bc91..2c4bda98b8 100644 --- a/services/sensorservice/SensorDevice.cpp +++ b/services/sensorservice/SensorDevice.cpp @@ -55,6 +55,9 @@ SensorDevice::SensorDevice() : mHidlTransportErrors(20) { if (!connectHidlService()) { return; } + + float minPowerMa = 0.001; // 1 microAmp + checkReturn(mSensors->getSensorsList( [&](const auto &list) { const size_t count = list.size(); @@ -64,6 +67,12 @@ SensorDevice::SensorDevice() : mHidlTransportErrors(20) { for (size_t i=0 ; i < count; i++) { sensor_t sensor; convertToSensor(list[i], &sensor); + // Sanity check and clamp power if it is 0 (or close) + if (sensor.power < minPowerMa) { + ALOGE("Reported power %f not deemed sane, clamping to %f", + sensor.power, minPowerMa); + sensor.power = minPowerMa; + } mSensorList.push_back(sensor); mActivationCount.add(list[i].sensorHandle, model); -- cgit v1.2.3-59-g8ed1b