diff options
author | George Lee <geolee@google.com> | 2022-10-05 14:08:33 -0700 |
---|---|---|
committer | George Lee <geolee@google.com> | 2022-10-10 17:37:34 +0000 |
commit | 8a8a2c92a276d9f12e38d50dde5eee48e4e72a16 (patch) | |
tree | f2727e846613c66f24bc16ca5aad227d96b42ccb /battery_mitigation | |
parent | 78841a5be944862e3597e9ab335c653de9fd672c (diff) | |
download | gs201-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.cpp | 19 |
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(); } |