thermal: Apply special thermal config for wingboard/MLB device

- Add new thermal config for wingboard without dependency on:
  - chg_mdis
  - inner_brightness zone
- Update init_thermal_config to check if wingboard, if so use the custom
  config

Bug: 335005016
Test: Build and boot to verify thermal logs
Change-Id: I58b9517de2acdfca0e371ce1a5dfe486eb6c15ee
This commit is contained in:
sashwinbalaji 2024-04-26 18:22:42 +08:00
parent 00df547797
commit 79277084b0
3 changed files with 816 additions and 1 deletions

View file

@ -142,6 +142,11 @@ PRODUCT_COPY_FILES += \
$(TARGET_VENDOR_THERMAL_CONFIG_PATH)/vt_estimation_model_comet.tflite:$(TARGET_COPY_OUT_VENDOR)/etc/vt_estimation_model.tflite \
$(TARGET_VENDOR_THERMAL_CONFIG_PATH)/vt_speaker_estimation_model_comet.tflite:$(TARGET_COPY_OUT_VENDOR)/etc/vt_speaker_estimation_model.tflite \
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(TARGET_VENDOR_THERMAL_CONFIG_PATH)/thermal_info_config_comet_wingboard.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_wingboard.json
endif
PRODUCT_PACKAGES += \
init_thermal_config

View file

@ -19,7 +19,17 @@
#include <string>
namespace {
constexpr std::string_view kWingBoardHwId("0x00060603000100020000000000000000");
using android::base::GetProperty;
bool useThermalWingBoardConfig() {
const auto cdt_hwid = GetProperty("ro.boot.cdt_hwid", "");
if (cdt_hwid == kWingBoardHwId) {
LOG(INFO) << "Using wingboard thermal config as found cdt_hwid " << cdt_hwid;
return true;
}
return false;
}
bool useThermalBackupConfig() {
const auto panel_drv = GetProperty("ro.boot.primary_panel_drv", "");
const auto is_panel_available = (panel_drv.find("panel-google-ct3a") != std::string::npos) ||
@ -39,11 +49,18 @@ bool useThermalBackupConfig() {
} // namespace
int main() {
if (useThermalBackupConfig()) {
if (useThermalWingBoardConfig()) {
if (!android::base::SetProperty("vendor.thermal.config",
"thermal_info_config_wingboard.json")) {
LOG(FATAL) << "Failed to set property vendor.thermal.config to "
"thermal_info_config_wingboard.";
}
} else if (useThermalBackupConfig()) {
if (!android::base::SetProperty("vendor.thermal.config",
"thermal_info_config_backup.json")) {
LOG(FATAL) << "Failed to set property vendor.thermal.config to "
"thermal_info_config_backup.";
}
}
return 0;
}

View file

@ -0,0 +1,793 @@
{
"Sensors": [
{
"Name": "battery",
"Type": "BATTERY",
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "60.0"],
"Multiplier": 0.001
},
{
"Name": "battery_cycle",
"Type": "BCL_VOLTAGE"
},
{
"Name": "maxfg_base",
"Type": "UNKNOWN",
"Multiplier": 0.001
},
{
"Name": "maxfg_secondary",
"Type": "UNKNOWN",
"Multiplier": 0.001
},
{
"Name": "soc",
"Type": "BCL_PERCENTAGE",
"HotThreshold": ["NAN", "NAN", 80, "NAN", "NAN", "NAN", "NAN"],
"Multiplier": 1
},
{
"Name": "BCL_AUDIO_BAACL",
"Type": "BCL_VOLTAGE",
"VirtualSensor": true,
"Formula": "COUNT_THRESHOLD",
"TriggerSensor": "soc",
"Combination": ["battery", "soc"],
"Coefficient": [-25000, 80],
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", 2.0, "NAN", "NAN"],
"PollingDelay": 0,
"PassiveDelay": 1000,
"Multiplier": 1,
"SendCallback": true
},
{
"Name": "soc_therm",
"Type": "UNKNOWN",
"HotThreshold": ["NaN", 34.29, "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "rffe_therm",
"Type": "UNKNOWN",
"HotThreshold": ["NaN", 35.07, "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "modem_therm",
"Type": "UNKNOWN",
"HotThreshold": ["NaN", 33.31, "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "gnss_tcxo_therm",
"Type": "UNKNOWN",
"HotThreshold": ["NaN", 32.08, "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "usb_conn_therm",
"Type": "UNKNOWN",
"HotThreshold": ["NAN", 30.79, "NAN", "NAN", "NAN", "NAN", "NAN"],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "charger_therm",
"Type": "UNKNOWN",
"HotThreshold": ["NAN", 34.89, "NAN", "NAN", "NAN", "NAN", "NAN"],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "inner_display_therm",
"Type": "UNKNOWN",
"Multiplier": 0.001
},
{
"Name": "display_therm",
"Type": "UNKNOWN",
"Multiplier": 0.001
},
{
"Name": "VIRTUAL-SKIN-OPEN-SUB-1",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"Formula": "WEIGHTED_AVG",
"Combination": ["charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Coefficient": [0.144, 0.448, 0.402],
"Offset": -1113,
"Multiplier": 0.001
},
{
"Name": "VIRTUAL-SKIN-OPEN-SUB-2",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"Formula": "WEIGHTED_AVG",
"Combination": ["charger_therm", "modem_therm", "inner_display_therm", "display_therm", "gnss_tcxo_therm"],
"Coefficient": [0.12, 0.12, 0.37, 0.32, 0.12],
"Offset": -30,
"Multiplier": 0.001
},
{
"Name": "VIRTUAL-SKIN",
"Type": "SKIN",
"Version": "2.1",
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN-OPEN-SUB-1", "VIRTUAL-SKIN-OPEN-SUB-2"],
"Coefficient": [1.0, 1.0],
"HotThreshold": ["NAN", 39.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis": [0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"SendCallback": true,
"BindedCdevInfo": [
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 2, 3, 4, 5, 5, 5]
},
{
"CdevRequest": "gxp-cooling",
"LimitInfo": [0, 0, 0, 0, 0, 99, 99]
}
]
},
{
"Name": "VIRTUAL-SKIN-HINT",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 37.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis": [0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier": 0.001,
"SendPowerHint": true,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "VIRTUAL-SKIN-CPU-LIGHT-ODPM",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 37.0, 39.0, "NAN", "NAN", "NAN", "NAN"],
"HotHysteresis": [0.0, 1.9, 1.9, 0.0, 0.0, 0.0, 0.0],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"PIDInfo": {
"K_Po": ["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
"K_Pu": ["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
"K_I": ["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
"K_D": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"I_Max": ["NAN", "NAN", 2200, "NAN", "NAN", "NAN", "NAN"],
"S_Power": ["NAN", "NAN", 800, "NAN", "NAN", "NAN", "NAN"],
"MinAllocPower": ["NAN", "NAN", 800, "NAN", "NAN", "NAN", "NAN"],
"MaxAllocPower": ["NAN", "NAN", 4600, "NAN", "NAN", "NAN", "NAN"],
"I_Cutoff": ["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
},
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 1,
"BindedPowerRail": "S4M_VDD_CPUCL0",
"CdevCeiling": [0, 2, 2, 2, 2, 2, 2]
},
{
"CdevRequest": "thermal-cpufreq-1",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"BindedPowerRail": "S2M_VDD_CPUCL1",
"CdevCeiling": [0, 6, 6, 6, 6, 6, 6]
},
{
"CdevRequest": "thermal-cpufreq-2",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"BindedPowerRail": "S3M_VDD_CPUCL2",
"CdevCeiling": [0, 15, 15, 15, 15, 15, 15]
}
],
"Profile": [
{
"Mode": "game",
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"BindedPowerRail": "S4M_VDD_CPUCL0",
"MaxReleaseStep": 1,
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"BindedPowerRail": "S2M_VDD_CPUCL1",
"MaxReleaseStep": 1,
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"BindedPowerRail": "S3M_VDD_CPUCL2",
"MaxReleaseStep": 1,
"Disabled":true
}
]
}
]
},
{
"Name": "VIRTUAL-SKIN-CPU-MID",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 39.0, 41.0, "NAN", "NAN", "NAN", "NAN"],
"HotHysteresis": [0.0, 0.0, 1.9, 0.0, 0.0, 0.0, 0.0],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"PIDInfo": {
"K_Po": ["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
"K_Pu": ["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
"K_I": ["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
"K_D": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"I_Max": ["NAN", "NAN", 1500, "NAN", "NAN", "NAN", "NAN"],
"S_Power": ["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
"MinAllocPower": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"MaxAllocPower": ["NAN", "NAN", 2800, "NAN", "NAN", "NAN", "NAN"],
"I_Cutoff": ["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
},
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"CdevWeightForPID": [0.292, 0.292, 0.292, 0.292, 0.292, 0.292, 0.292],
"MaxReleaseStep": 1,
"MaxThrottleStep": 1,
"CdevCeiling": [0, 7, 7, 7, 7, 7, 7]
},
{
"CdevRequest": "thermal-cpufreq-1",
"CdevWeightForPID": [0.804, 0.804, 0.804, 0.804, 0.804, 0.804, 0.804],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"CdevCeiling": [0, 10, 10, 10, 10, 10, 10]
},
{
"CdevRequest": "thermal-cpufreq-2",
"CdevWeightForPID": [0.342, 0.342, 0.342, 0.342, 0.342, 0.342, 0.342],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"CdevCeiling": [0, 17, 17, 17, 17, 17, 17]
}
],
"Profile": [
{
"Mode": "game",
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
"Disabled": true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
"Disabled": true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
"Disabled": true
}
]
},
{
"Mode": "camera",
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
"Disabled": true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
"Disabled": true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
"Disabled": true
}
]
}
]
},
{
"Name": "VIRTUAL-SKIN-CPU-HIGH",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 41.0, 43.0, 53.0, "NAN", "NAN", "NAN"],
"HotHysteresis": [0.0, 0.0, 1.9, 1.9, 0.0, 0.0, 0.0],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"PIDInfo": {
"K_Po": ["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
"K_Pu": ["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
"K_I": ["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
"K_D": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"I_Max": ["NAN", "NAN", 1000, "NAN", "NAN", "NAN", "NAN"],
"S_Power": ["NAN", "NAN", 600, "NAN", "NAN", "NAN", "NAN"],
"MinAllocPower": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"MaxAllocPower": ["NAN", "NAN", 1600, "NAN", "NAN", "NAN", "NAN"],
"I_Cutoff": ["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
},
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"CdevWeightForPID": [0.156, 0.156, 0.156, 0.156, 0.156, 0.156, 0.156],
"MaxReleaseStep": 1,
"MaxThrottleStep": 1,
"CdevCeiling": [0, 9, 9, 9, 9, 9, 9]
},
{
"CdevRequest": "thermal-cpufreq-1",
"CdevWeightForPID": [0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"CdevCeiling": [0, 13, 13, 13, 13, 13, 13]
},
{
"CdevRequest": "thermal-cpufreq-2",
"CdevWeightForPID": [0.225, 0.225, 0.225, 0.225, 0.225, 0.225, 0.225],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"CdevCeiling": [0, 17, 17, 17, 17, 17, 17]
}
],
"Profile": [
{
"Mode": "game",
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
"Disabled": true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
"Disabled": true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
"Disabled": true
}
]
},
{
"Mode": "camera",
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"CdevWeightForPID": [
0.156, 0.156, 0.156, 0.156, 0.156, 0.156, 0.156
],
"MaxReleaseStep": 1,
"MaxThrottleStep": 1,
"CdevCeiling": [0, 2, 2, 2, 2, 2, 2]
},
{
"CdevRequest": "thermal-cpufreq-1",
"CdevWeightForPID": [
0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428
],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"CdevCeiling": [0, 6, 6, 6, 6, 6, 6]
},
{
"CdevRequest": "thermal-cpufreq-2",
"CdevWeightForPID": [
0.225, 0.225, 0.225, 0.225, 0.225, 0.225, 0.225
],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"CdevCeiling": [0, 15, 15, 15, 15, 15, 15]
}
]
}
]
},
{
"Name": "VIRTUAL-SKIN-CPU-GPU",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 37.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis": [0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"PIDInfo": {
"K_Po": ["NAN", "NAN", "NAN", 300, "NAN", "NAN", "NAN"],
"K_Pu": ["NAN", "NAN", "NAN", 300, "NAN", "NAN", "NAN"],
"K_I": ["NAN", "NAN", "NAN", 5, "NAN", "NAN", "NAN"],
"K_D": ["NAN", "NAN", "NAN", 0, "NAN", "NAN", "NAN"],
"I_Max": ["NAN", "NAN", "NAN", 2600, "NAN", "NAN", "NAN"],
"S_Power": ["NAN", "NAN", "NAN", 800, "NAN", "NAN", "NAN"],
"MinAllocPower": ["NAN", "NAN", "NAN", 0, "NAN", "NAN", "NAN"],
"MaxAllocPower": ["NAN", "NAN", "NAN", 3900, "NAN", "NAN", "NAN"],
"I_Cutoff": ["NAN", "NAN", "NAN", 8, "NAN", "NAN", "NAN"]
},
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 1,
"BindedPowerRail": "S4M_VDD_CPUCL0",
"CdevCeiling": [0, 9, 9, 9, 9, 9, 9],
"LimitInfo": [0, 0, 0, 0, 0, 9, 9]
},
{
"CdevRequest": "thermal-cpufreq-1",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"BindedPowerRail": "S2M_VDD_CPUCL1",
"CdevCeiling": [0, 13, 13, 13, 14, 16, 16],
"LimitInfo": [0, 0, 0, 0, 0, 16, 16]
},
{
"CdevRequest": "thermal-cpufreq-2",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 2,
"BindedPowerRail": "S3M_VDD_CPUCL2",
"CdevCeiling": [0, 17, 17, 17, 17, 17, 17],
"LimitInfo": [0, 0, 0, 0, 0, 17, 17]
},
{
"CdevRequest": "thermal-gpufreq-0",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"MaxReleaseStep": 1,
"MaxThrottleStep": 1,
"BindedPowerRail": "S2S_VDD_G3D",
"CdevCeiling": [0, 9, 9, 9, 10, 12, 12],
"LimitInfo": [0, 0, 0, 0, 0, 12, 12]
}
]
},
{
"Name": "VIRTUAL-SKIN-GPU",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 43.0, 45.0, 46.5, 53.0, "NAN", "NAN"],
"HotHysteresis": [0.0, 1.9, 1.9, 1.4, 1.9, 0.0, 0.0],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"PIDInfo": {
"K_Po": ["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
"K_Pu": ["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
"K_I": ["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
"K_D": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"I_Max": ["NAN", "NAN", 1723, "NAN", "NAN", "NAN", "NAN"],
"S_Power": ["NAN", "NAN", 473, "NAN", "NAN", "NAN", "NAN"],
"MinAllocPower": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
"MaxAllocPower": ["NAN", "NAN", 2500, "NAN", "NAN", "NAN", "NAN"],
"I_Cutoff": ["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
},
"BindedCdevInfo": [
{
"CdevRequest": "thermal-gpufreq-0",
"CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1],
"CdevCeiling": [0, 9, 9, 10, 12, 12, 12]
}
]
},
{
"Name": "cellular-emergency",
"Type": "POWER_AMPLIFIER",
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", 55.0, "NAN"],
"HotHysteresis": [0.0, 0.0, 0.0, 0.0, 0.0, 1.9, 0.0],
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"SendCallback": true
},
{
"Name": "VIRTUAL-SKIN-OUTER-DISPLAY",
"Type": "DISPLAY",
"Version": "1.0",
"VirtualSensor": true,
"TriggerSensor": ["soc_therm", "rffe_therm", "charger_therm", "modem_therm", "gnss_tcxo_therm"],
"Formula": "MAXIMUM",
"Combination": ["VIRTUAL-SKIN"],
"Coefficient": [1.0],
"HotThreshold": ["NAN", 39.0, 43.0, 45.0, 46.5, 53.0, 57.0],
"HotHysteresis": [0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier": 0.001,
"SendCallback": true,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "VIRTUAL-SKIN-CHARGE-WIRED",
"Type": "UNKNOWN",
"Version": "0.2",
"VirtualSensor": true,
"TriggerSensor": "charger_therm",
"Formula": "WEIGHTED_AVG",
"Combination": ["soc_therm", "rffe_therm", "modem_therm", "gnss_tcxo_therm"],
"Coefficient": [0.119, 0.103, 0.481, 0.288],
"Offset": -203,
"Multiplier": 0.001
},
{
"Name": "VIRTUAL-SKIN-SPEAKER",
"Type": "UNKNOWN",
"Version": "0.1",
"VirtualSensor": true,
"TriggerSensor": "usb_conn_therm",
"Formula": "WEIGHTED_AVG",
"Combination": ["usb_conn_therm", "maxfg_base"],
"Coefficient": [0.89, 0.01],
"HotThreshold": ["NAN", 37.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
"HotHysteresis": [0.0, 1.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"Offset": 8426,
"Multiplier": 0.001,
"PollingDelay": 300000,
"PassiveDelay": 7000,
"SendCallback": true
},
{
"Name": "USB-MINUS-CHARGER",
"Type": "UNKNOWN",
"VirtualSensor": true,
"Hidden": true,
"TriggerSensor": "usb_conn_therm",
"Formula": "WEIGHTED_AVG",
"Combination": ["usb_conn_therm", "charger_therm"],
"Coefficient": [1.0, -1.0],
"Multiplier": 0.001
},
{
"Name": "VIRTUAL-USB-THROTTLING",
"Type": "USB_PORT",
"Version": "0.1",
"VirtualSensor": true,
"Formula": "COUNT_THRESHOLD",
"TriggerSensor": "usb_conn_therm",
"Combination": ["usb_conn_therm", "USB-MINUS-CHARGER"],
"Coefficient": [46000, 7000],
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "2.0", "NAN", "NAN"],
"BindedCdevInfo": [
{
"CdevRequest": "usbc-port",
"LimitInfo": [0, 0, 0, 0, 1, 1, 1]
}
],
"Multiplier": 1,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "VIRTUAL-USB-UI",
"Type": "USB_PORT",
"Version": "0.1",
"VirtualSensor": true,
"Formula": "COUNT_THRESHOLD",
"TriggerSensor": "usb_conn_therm",
"Combination": ["usb_conn_therm", "USB-MINUS-CHARGER"],
"Coefficient": [46000, 10000],
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", "2.0", "NAN"],
"Multiplier": 1,
"SendCallback": true,
"PollingDelay": 300000,
"PassiveDelay": 7000
},
{
"Name": "LEFT-INNER-DISPLAY",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"Formula": "WEIGHTED_AVG",
"Combination": ["display_therm", "maxfg_secondary"],
"Coefficient": [0.516, 0.535],
"Offset": -26,
"Multiplier": 0.001
},
{
"Name": "RIGHT-INNER-DISPLAY",
"Type": "UNKNOWN",
"Hidden": true,
"VirtualSensor": true,
"Formula": "WEIGHTED_AVG",
"Combination": ["usb_conn_therm", "maxfg_base"],
"Coefficient": [0.045, 0.849],
"Offset": 2975,
"Multiplier": 0.001
},
{
"Name": "INNER-DISPLAY-DIFF",
"Type": "UNKNOWN",
"VirtualSensor": true,
"Formula": "WEIGHTED_AVG",
"Combination": ["RIGHT-INNER-DISPLAY", "LEFT-INNER-DISPLAY"],
"Coefficient": [1.0, -1.0],
"Multiplier": 0.001
},
{
"Name": "LITTLE",
"Type": "CPU",
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 115.0],
"VrThreshold": "NAN",
"Multiplier": 0.001
},
{
"Name": "MID",
"Type": "CPU",
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 115.0],
"VrThreshold": "NAN",
"Multiplier": 0.001
},
{
"Name": "BIG",
"Type": "CPU",
"HotThreshold": ["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier": 0.001
},
{
"Name": "G3D",
"Type": "GPU",
"HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 115.0],
"VrThreshold": "NAN",
"Multiplier": 0.001
},
{
"Name": "TPU",
"Type": "NPU",
"HotThreshold": ["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier": 0.001
}
],
"CoolingDevices": [
{
"Name": "thermal-cpufreq-0",
"Type": "CPU",
"WritePath": "/dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote"
},
{
"Name": "thermal-cpufreq-1",
"Type": "CPU",
"WritePath": "/dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote"
},
{
"Name": "thermal-cpufreq-2",
"Type": "CPU",
"WritePath": "/dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote"
},
{
"Name": "thermal-gpufreq-0",
"Type": "GPU",
"WritePath": "/dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote"
},
{
"Name": "usbc-port",
"Type": "BATTERY"
},
{
"Name": "tpu_cooling",
"Type": "NPU",
"WritePath": "/dev/thermal/cdev-by-name/tpu_cooling/user_vote"
},
{
"Name": "gxp-cooling",
"Type": "NPU",
"WritePath": "/dev/thermal/cdev-by-name/gxp-cooling/user_vote"
}
],
"PowerRails": [
{
"Name": "S3M_VDD_CPUCL2",
"PowerSampleDelay": 7000,
"PowerSampleCount": 1
},
{
"Name": "S2M_VDD_CPUCL1",
"PowerSampleDelay": 7000,
"PowerSampleCount": 1
},
{
"Name": "S4M_VDD_CPUCL0",
"PowerSampleDelay": 7000,
"PowerSampleCount": 1
},
{
"Name": "S2S_VDD_G3D",
"PowerSampleDelay": 7000,
"PowerSampleCount": 1
},
{
"Name": "PARTIAL_SYSTEM_POWER",
"VirtualRails": true,
"Formula": "WEIGHTED_AVG",
"Combination": [
"S1S_VDD_CAM",
"S2S_VDD_G3D",
"S4S_VDD2H_MEM",
"S5S_VDDQ_MEM",
"S9S_VDD_AOC",
"L2S_PLL_MIPI_UFS",
"L21S_VDD2L_MEM",
"VSYS_PWR_DISPLAY",
"VSYS_PWR_WLAN_BT",
"S1M_VDD_MIF",
"S3M_VDD_CPUCL2",
"S2M_VDD_CPUCL1",
"S4M_VDD_CPUCL0",
"S5M_VDD_INT",
"S6M_LLDO1",
"S7M_VDD_TPU",
"S8M_LLDO2",
"VSYS_PWR_MODEM"
],
"Coefficient": [
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0
],
"PowerSampleDelay": 7000,
"PowerSampleCount": 5
}
]
}