summaryrefslogtreecommitdiff
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
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
-rw-r--r--battery_mitigation/battery_mitigation.cpp19
-rw-r--r--conf/init.gs201.rc5
2 files changed, 23 insertions, 1 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();
}
diff --git a/conf/init.gs201.rc b/conf/init.gs201.rc
index daa5be6..76c1ffe 100644
--- a/conf/init.gs201.rc
+++ b/conf/init.gs201.rc
@@ -911,7 +911,7 @@ on post-fs-data
mkdir /data/vendor/powerstats 0771 system system
chown system system /data/vendor/powerstats
-on property:vendor.thermal.link_ready=1
+on property:vendor.brownout.mitigation.ready=1
# BCL
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0xfff041c1 #DFS
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c1 #DFS
@@ -927,6 +927,9 @@ on property:vendor.thermal.link_ready=1
write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1
write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1
write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1
+
+on property:vendor.thermal.link_ready=1
+ # BCL
chown system system /dev/thermal/tz-by-name/soc/mode
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_hyst