summaryrefslogtreecommitdiff
path: root/battery_mitigation
diff options
context:
space:
mode:
authorGeorge Lee <geolee@google.com>2022-10-05 14:08:33 -0700
committerGeorge Lee <geolee@google.com>2022-10-10 17:37:34 +0000
commit8a8a2c92a276d9f12e38d50dde5eee48e4e72a16 (patch)
treef2727e846613c66f24bc16ca5aad227d96b42ccb /battery_mitigation
parent78841a5be944862e3597e9ab335c653de9fd672c (diff)
downloadgs201-8a8a2c92a276d9f12e38d50dde5eee48e4e72a16.tar.gz
bcl: Add mitigation ready check
Instead of relying on vendor.thermal.link_ready property to gate write to BCL's SYSFS node, adding mitigation ready SYSFS so that writes to BCL's SYSFS node would not cause NULL pointer dereference. Bug: 249130916 Test: Confirm property vendor.brownout.mitigation.ready is set Signed-off-by: George Lee <geolee@google.com> Change-Id: Ic643a07ddb657cfc7e22537d5d25d0d99324e31c
Diffstat (limited to 'battery_mitigation')
-rw-r--r--battery_mitigation/battery_mitigation.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/battery_mitigation/battery_mitigation.cpp b/battery_mitigation/battery_mitigation.cpp
index 5784b27..2204bd5 100644
--- a/battery_mitigation/battery_mitigation.cpp
+++ b/battery_mitigation/battery_mitigation.cpp
@@ -63,8 +63,27 @@ const struct MitigationConfig::Config cfg = {
.LogFilePath = "/data/vendor/mitigation/thismeal.txt",
};
+const char kReadyFilePath[] = "/sys/devices/virtual/pmic/mitigation/instruction/ready";
+const char kReadyProperty[] = "vendor.brownout.mitigation.ready";
+
int main(int /*argc*/, char ** /*argv*/) {
bmSp = new BatteryMitigation(cfg);
+ bool isBatteryMitigationReady = false;
+ std::string ready_str;
+ int val = 0;
+ while (!isBatteryMitigationReady) {
+ if (!android::base::ReadFileToString(kReadyFilePath, &ready_str)) {
+ continue;
+ }
+ ready_str = android::base::Trim(ready_str);
+ if (!android::base::ParseInt(ready_str, &val)) {
+ continue;
+ }
+ if (val == 1) {
+ isBatteryMitigationReady = true;
+ }
+ }
+ android::base::SetProperty(kReadyProperty, "1");
while (true) {
pause();
}