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
This commit is contained in:
George Lee 2022-10-05 14:08:33 -07:00
parent 78841a5be9
commit 8a8a2c92a2
2 changed files with 23 additions and 1 deletions

View file

@ -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();
}

View file

@ -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