From 60838fc7a637c497067def75e04e84c681858eb7 Mon Sep 17 00:00:00 2001 From: TeYuan Wang Date: Fri, 10 Feb 2023 17:39:23 +0800 Subject: thermal: Fix throttle/release step bypass issue The throttle/release step check will be bypassed if the sensor has no binded power rail or the power data is still collecting. Fix this issue with adding a check. Bug: 269730273 Test: verified by emul_temp Change-Id: I79ce02fa589a79bbe2dd0983c86099f36acd3c06 --- thermal/utils/thermal_throttling.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/thermal/utils/thermal_throttling.cpp b/thermal/utils/thermal_throttling.cpp index 0a5f926..b2fd9d2 100644 --- a/thermal/utils/thermal_throttling.cpp +++ b/thermal/utils/thermal_throttling.cpp @@ -427,7 +427,7 @@ bool ThermalThrottling::allocatePowerToCdev( if (binded_cdev_info_pair.second.max_release_step != std::numeric_limits::max() && - cdev_power_adjustment > 0) { + (power_data_invalid || cdev_power_adjustment > 0)) { auto target_state = std::max(curr_state - binded_cdev_info_pair.second.max_release_step, 0); cdev_power_budget = @@ -436,7 +436,7 @@ bool ThermalThrottling::allocatePowerToCdev( if (binded_cdev_info_pair.second.max_throttle_step != std::numeric_limits::max() && - cdev_power_adjustment < 0) { + (power_data_invalid || cdev_power_adjustment < 0)) { auto target_state = std::min(curr_state + binded_cdev_info_pair.second.max_throttle_step, cdev_info.max_state); -- cgit v1.2.3