From 6c25d5a7fd300bffbe28bd622dd26564c8fb32bd Mon Sep 17 00:00:00 2001 From: George Lee Date: Fri, 24 Mar 2023 17:19:14 -0700 Subject: [PATCH] bm: Exit loop to check for BCL after 10 tries battery_mitigation may be kept in forever loop to read sysfs node. This makes sure that the loop is exited after 10 tries. Bug: 275028861 Test: Local boot up and ensure battery_mitigation comes up Change-Id: I02936f4426519b2c9fbc776cdb2614fdeba872c0 Signed-off-by: George Lee --- battery_mitigation/battery_mitigation.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/battery_mitigation/battery_mitigation.cpp b/battery_mitigation/battery_mitigation.cpp index 230f297..2443226 100644 --- a/battery_mitigation/battery_mitigation.cpp +++ b/battery_mitigation/battery_mitigation.cpp @@ -19,6 +19,8 @@ #include #include +#define COUNT_LIMIT 10 + using android::hardware::google::pixel::BatteryMitigation; using android::hardware::google::pixel::MitigationConfig; @@ -94,7 +96,7 @@ int main(int /*argc*/, char ** /*argv*/) { bool isBatteryMitigationReady = false; std::string ready_str; int val = 0; - while (!isBatteryMitigationReady) { + for (int i = 0; i < COUNT_LIMIT; i++) { if (!android::base::ReadFileToString(kReadyFilePath, &ready_str)) { continue; } @@ -104,9 +106,12 @@ int main(int /*argc*/, char ** /*argv*/) { } if (val == 1) { isBatteryMitigationReady = true; + break; } } - android::base::SetProperty(kReadyProperty, "1"); + if (isBatteryMitigationReady) { + android::base::SetProperty(kReadyProperty, "1"); + } while (true) { pause(); }