diff --git a/conf/init.comet.rc b/conf/init.comet.rc index 7e59942..d8f7b8b 100644 --- a/conf/init.comet.rc +++ b/conf/init.comet.rc @@ -47,11 +47,18 @@ on init && property:ro.bootmode=factory write /sys/devices/platform/hall_sensor/enable 0 # Thermal -on late-init && property:ro.boot.hardware.revision=PROTO1.0 - setprop vendor.thermal.config "thermal_info_config_proto.json" +service init_thermal_config /vendor/bin/init_thermal_config + class main + user root + group root system + disabled + oneshot -on late-init && property:ro.boot.hardware.revision=PROTO1.1 - setprop vendor.thermal.config "thermal_info_config_proto.json" +on late-init + start init_thermal_config + +on property:vendor.thermal.config=thermal_info_config_charge + start init_thermal_config on property:vendor.thermal.link_ready=1 chown system system /dev/thermal/tz-by-name/charger_therm/trip_point_0_temp diff --git a/device-comet.mk b/device-comet.mk index 8e0703a..25de156 100644 --- a/device-comet.mk +++ b/device-comet.mk @@ -102,10 +102,17 @@ PRODUCT_COPY_FILES += \ device/google/comet/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf # Thermal Config +ifeq (,$(TARGET_VENDOR_THERMAL_CONFIG_PATH)) +TARGET_VENDOR_THERMAL_CONFIG_PATH := device/google/comet/thermal +endif + PRODUCT_COPY_FILES += \ - device/google/comet/thermal_info_config_comet.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json \ - device/google/comet/thermal_info_config_comet_proto.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_proto.json \ - device/google/comet/thermal_info_config_charge_comet.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json + $(TARGET_VENDOR_THERMAL_CONFIG_PATH)/thermal_info_config_charge_comet.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json \ + $(TARGET_VENDOR_THERMAL_CONFIG_PATH)/thermal_info_config_comet.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json \ + $(TARGET_VENDOR_THERMAL_CONFIG_PATH)/thermal_info_config_backup_comet.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_backup.json \ + +PRODUCT_PACKAGES += \ + init_thermal_config # Power HAL config PRODUCT_COPY_FILES += \ diff --git a/thermal/Android.bp b/thermal/Android.bp new file mode 100644 index 0000000..276eac0 --- /dev/null +++ b/thermal/Android.bp @@ -0,0 +1,35 @@ +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "device_google_comet_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["device_google_comet_license"], +} + +cc_binary { + name: "init_thermal_config", + srcs: ["init_thermal_config.cpp"], + shared_libs: ["libbase"], + cflags: [ + "-Wall", + "-Werror", + "-Wextra", + "-Wunused", + ], + vendor: true +} \ No newline at end of file diff --git a/thermal/init_thermal_config.cpp b/thermal/init_thermal_config.cpp new file mode 100644 index 0000000..2151ef3 --- /dev/null +++ b/thermal/init_thermal_config.cpp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include + +#include + +namespace { +using android::base::GetProperty; +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) || + (panel_drv.find("panel-google-ct3b") != std::string::npos); + if (!is_panel_available) { + LOG(INFO) << "Using backup thermal config as unknown panel [" << panel_drv << "] found."; + return true; + } + const auto hardware_revision = GetProperty("ro.boot.hardware.revision", ""); + if (hardware_revision == "PROTO1.0" || hardware_revision == "PROTO1.1") { + LOG(INFO) << "Using backup thermal config as hardware revision [" << hardware_revision + << "] found."; + return true; + } + return false; +} +} // namespace + +int main() { + 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."; + } + } +} \ No newline at end of file diff --git a/thermal/thermal_info_config_backup_comet.json b/thermal/thermal_info_config_backup_comet.json new file mode 100644 index 0000000..b73e51d --- /dev/null +++ b/thermal/thermal_info_config_backup_comet.json @@ -0,0 +1,413 @@ +{ + "Sensors": [ + { + "Name": "batoilo", + "Type": "BCL_CURRENT", + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 5000, "NAN", "NAN"], + "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], + "Multiplier": 1, + "SendCallback": true, + "PollingDelay": 0, + "PassiveDelay": 1000 + }, + { + "Name": "batoilo2", + "Type": "BCL_CURRENT", + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 8000, "NAN", "NAN"], + "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], + "Multiplier": 1, + "SendCallback": true, + "PollingDelay": 0, + "PassiveDelay": 1000 + }, + { + "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": "smpl_gm", + "Type": "BCL_VOLTAGE", + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 1100, "NAN", "NAN"], + "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], + "Multiplier": 1, + "SendCallback": true, + "PollingDelay": 0, + "PassiveDelay": 1000 + }, + { + "Name": "soc", + "Type": "BCL_PERCENTAGE", + "HotThreshold": ["NAN", "NAN", 80, "NAN", "NAN", "NAN", "NAN"], + "Multiplier": 1 + }, + { + "Name": "vdroop1", + "Type": "BCL_VOLTAGE", + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 1200, "NAN", "NAN"], + "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], + "Multiplier": 1, + "SendCallback": true, + "PollingDelay": 0, + "PassiveDelay": 1000 + }, + { + "Name": "vdroop2", + "Type": "BCL_VOLTAGE", + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 1000, "NAN", "NAN"], + "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], + "Multiplier": 1, + "SendCallback": true, + "PollingDelay": 0, + "PassiveDelay": 1000 + }, + { + "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": "FLASH_LED_REDUCE", + "Type": "UNKNOWN", + "VirtualSensor": true, + "Formula": "COUNT_THRESHOLD", + "TriggerSensor": "vdroop2", + "Combination": ["battery", "battery_cycle", "vdroop2"], + "Coefficient": [-10000, 400, 1000], + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 3.0, "NAN", "NAN"], + "Multiplier": 1, + "PollingDelay": 0, + "PassiveDelay": 1000, + "SendCallback": true, + "SendPowerHint": true + }, + { + "Name": "soc_therm", + "Type": "UNKNOWN", + "TempPath": "/dev/thermal/tz-by-name/soc_therm/tz_temp", + "Multiplier": 0.001 + }, + { + "Name": "rffe_therm", + "Type": "UNKNOWN", + "TempPath": "/dev/thermal/tz-by-name/rffe_therm/tz_temp", + "Multiplier": 0.001 + }, + { + "Name": "modem_therm", + "Type": "UNKNOWN", + "TempPath": "/dev/thermal/tz-by-name/modem_therm/tz_temp", + "Multiplier": 0.001 + }, + { + "Name": "gnss_tcxo_therm", + "Type": "UNKNOWN", + "TempPath": "/dev/thermal/tz-by-name/gnss_tcxo_therm/tz_temp", + "Multiplier": 0.001 + }, + { + "Name": "usb_conn_therm", + "Type": "UNKNOWN", + "HotThreshold": ["NAN", 30.79, "NAN", "NAN", "NAN", "NAN", "NAN"], + "TempPath": "/dev/thermal/tz-by-name/usb_conn_therm/tz_temp", + "Multiplier": 0.001, + "PollingDelay": 300000, + "PassiveDelay": 7000 + }, + { + "Name": "charger_therm", + "Type": "UNKNOWN", + "HotThreshold": ["NAN", 34.89, "NAN", "NAN", "NAN", "NAN", "NAN"], + "TempPath": "/dev/thermal/tz-by-name/charger_therm/tz_temp", + "Multiplier": 0.001, + "PollingDelay": 300000, + "PassiveDelay": 7000 + }, + { + "Name": "VIRTUAL-SKIN", + "Type": "SKIN", + "Version": "0.1", + "VirtualSensor": true, + "TriggerSensor": "charger_therm", + "Formula": "WEIGHTED_AVG", + "Combination": ["soc_therm", "rffe_therm", "modem_therm"], + "Coefficient": [0.223, 0.175, 0.493], + "HotThreshold": ["NAN", 39.0, 43.0, 45.0, 46.5, 100.0, 140.0], + "HotHysteresis": [0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9], + "Offset": 2631, + "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": "charger_therm", + "Formula": "MAXIMUM", + "Combination": ["VIRTUAL-SKIN"], + "Coefficient": [1.0], + "HotThreshold": ["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 140.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": "cellular-emergency", + "Type": "POWER_AMPLIFIER", + "VirtualSensor": true, + "TriggerSensor": "charger_therm", + "Formula": "MAXIMUM", + "Combination": ["VIRTUAL-SKIN"], + "Coefficient": [1.0], + "HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", 138.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-CHARGE", + "Type": "UNKNOWN", + "Version": "0.1", + "VirtualSensor": true, + "TriggerSensor": "charger_therm", + "Formula": "MAXIMUM", + "Combination": ["VIRTUAL-SKIN"], + "Coefficient": [1.0], + "HotThreshold": ["NAN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0], + "HotHysteresis": [0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9], + "Multiplier": 0.001, + "PollingDelay": 300000, + "PassiveDelay": 7000, + "PIDInfo": { + "K_Po": ["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"], + "K_Pu": ["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"], + "K_I": ["NAN", "NAN", 25, "NAN", "NAN", "NAN", "NAN"], + "K_D": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"], + "I_Max": ["NAN", "NAN", 1302, "NAN", "NAN", "NAN", "NAN"], + "S_Power": ["NAN", "NAN", 2527, "NAN", "NAN", "NAN", "NAN"], + "MinAllocPower": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"], + "MaxAllocPower": ["NAN", "NAN", 6219, "NAN", "NAN", "NAN", "NAN"], + "I_Cutoff": ["NAN", "NAN", 6, "NAN", "NAN", "NAN", "NAN"], + "I_Default": 1302 + }, + "ExcludedPowerInfo": [ + { + "PowerRail": "PARTIAL_SYSTEM_POWER", + "PowerWeight": [0.12, 0.12, 0.06, 0.06, 0.24, 0.24, 0.24] + } + ], + "BindedCdevInfo": [ + { + "CdevRequest": "chg_mdis", + "CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1], + "MaxReleaseStep": 1, + "MaxThrottleStep": 1, + "CdevCeiling": [0, 25, 25, 25, 26, 26, 26], + "LimitInfo": [0, 0, 1, 1, 1, 26, 26] + } + ] + }, + { + "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, + "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": "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": "chg_mdis", + "Type": "BATTERY" + }, + { + "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": "PARTIAL_SYSTEM_POWER", + "VirtualRails": true, + "Formula": "WEIGHTED_AVG", + "Combination": [ + "S1S_VDD_CAM", + "S4S_VDD2H_MEM", + "S5S_VDDQ_MEM", + "S8S_VDD_G3D_L2", + "S9S_VDD_AOC", + "L2S_PLL_MIPI_UFS", + "L9S_GNSS_CORE", + "L21S_VDD2L_MEM", + "VSYS_PWR_DISPLAY", + "VSYS_PWR_WLAN_BT", + "S1M_VDD_MIF", + "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 + ], + "PowerSampleDelay": 7000, + "PowerSampleCount": 5 + } + ] +} diff --git a/thermal_info_config_charge_comet.json b/thermal/thermal_info_config_charge_comet.json similarity index 86% rename from thermal_info_config_charge_comet.json rename to thermal/thermal_info_config_charge_comet.json index 23aeaef..1fb655d 100644 --- a/thermal_info_config_charge_comet.json +++ b/thermal/thermal_info_config_charge_comet.json @@ -42,6 +42,34 @@ "PollingDelay": 300000, "PassiveDelay": 7000 }, + { + "Name": "inner_brightness", + "Type": "UNKNOWN", + "Multiplier": 1 + }, + { + "Name": "OPEN_WEIGHT", + "Type": "UNKNOWN", + "Hidden": true, + "VirtualSensor": true, + "Formula": "COUNT_THRESHOLD", + "StepRatio": 0.2, + "Combination": ["inner_brightness"], + "Coefficient": [1.0], + "Multiplier": 1, + "PassiveDelay": 7000 + }, + { + "Name": "CLOSE_WEIGHT", + "Type": "UNKNOWN", + "Hidden": true, + "VirtualSensor": true, + "Formula": "WEIGHTED_AVG", + "Combination": ["1", "OPEN_WEIGHT"], + "CombinationType": ["CONSTANT", "SENSOR"], + "Coefficient": [1.0, -1.0], + "Multiplier": 1 + }, { "Name": "VIRTUAL-SKIN-CHARGE-OPEN", "Type": "UNKNOWN", @@ -76,8 +104,9 @@ "VirtualSensor": true, "TriggerSensor": "charger_therm", "Formula": "WEIGHTED_AVG", - "Combination": ["VIRTUAL-SKIN-CHARGE-CLOSE"], - "Coefficient": [1.0], + "Combination": ["VIRTUAL-SKIN-CHARGE-OPEN", "VIRTUAL-SKIN-CHARGE-CLOSE"], + "Coefficient": ["OPEN_WEIGHT", "CLOSE_WEIGHT"], + "CoefficientType": ["SENSOR", "SENSOR"], "HotThreshold": ["NaN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0], "HotHysteresis": [0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9], "Multiplier": 0.001, diff --git a/thermal_info_config_comet.json b/thermal/thermal_info_config_comet.json similarity index 97% rename from thermal_info_config_comet.json rename to thermal/thermal_info_config_comet.json index fd5485a..ba34498 100644 --- a/thermal_info_config_comet.json +++ b/thermal/thermal_info_config_comet.json @@ -142,6 +142,34 @@ "PollingDelay": 300000, "PassiveDelay": 7000 }, + { + "Name": "inner_brightness", + "Type": "UNKNOWN", + "Multiplier": 1 + }, + { + "Name": "OPEN_WEIGHT", + "Type": "UNKNOWN", + "Hidden": true, + "VirtualSensor": true, + "Formula": "COUNT_THRESHOLD", + "StepRatio": 0.2, + "Combination": ["inner_brightness"], + "Coefficient": [1.0], + "Multiplier": 1, + "PassiveDelay": 7000 + }, + { + "Name": "CLOSE_WEIGHT", + "Type": "UNKNOWN", + "Hidden": true, + "VirtualSensor": true, + "Formula": "WEIGHTED_AVG", + "Combination": ["1", "OPEN_WEIGHT"], + "CombinationType": ["CONSTANT", "SENSOR"], + "Coefficient": [1.0, -1.0], + "Multiplier": 1 + }, { "Name": "VIRTUAL-SKIN-OPEN", "Type": "UNKNOWN", @@ -176,8 +204,9 @@ "VirtualSensor": true, "TriggerSensor": "charger_therm", "Formula": "WEIGHTED_AVG", - "Combination": ["VIRTUAL-SKIN-CLOSE"], - "Coefficient": [1.0], + "Combination": ["VIRTUAL-SKIN-OPEN", "VIRTUAL-SKIN-CLOSE"], + "Coefficient": ["OPEN_WEIGHT", "CLOSE_WEIGHT"], + "CoefficientType": ["SENSOR", "SENSOR"], "HotThreshold": ["NAN", 39.0, 43.0, 45.0, 46.5, 100.0, 140.0], "HotHysteresis": [0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9], "Multiplier": 0.001, diff --git a/thermal_info_config_comet_proto.json b/thermal_info_config_comet_proto.json deleted file mode 100644 index 0616244..0000000 --- a/thermal_info_config_comet_proto.json +++ /dev/null @@ -1,876 +0,0 @@ -{ - "Sensors": [ - { - "Name": "batoilo", - "Type": "BCL_CURRENT", - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 5000, "NAN", "NAN"], - "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], - "Multiplier": 1, - "SendCallback": true, - "PollingDelay": 0, - "PassiveDelay": 1000 - }, - { - "Name": "batoilo2", - "Type": "BCL_CURRENT", - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 8000, "NAN", "NAN"], - "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], - "Multiplier": 1, - "SendCallback": true, - "PollingDelay": 0, - "PassiveDelay": 1000 - }, - { - "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": "smpl_gm", - "Type": "BCL_VOLTAGE", - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 1100, "NAN", "NAN"], - "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], - "Multiplier": 1, - "SendCallback": true, - "PollingDelay": 0, - "PassiveDelay": 1000 - }, - { - "Name": "soc", - "Type": "BCL_PERCENTAGE", - "HotThreshold": ["NAN", "NAN", 80, "NAN", "NAN", "NAN", "NAN"], - "Multiplier": 1 - }, - { - "Name": "vdroop1", - "Type": "BCL_VOLTAGE", - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 1200, "NAN", "NAN"], - "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], - "Multiplier": 1, - "SendCallback": true, - "PollingDelay": 0, - "PassiveDelay": 1000 - }, - { - "Name": "vdroop2", - "Type": "BCL_VOLTAGE", - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 1000, "NAN", "NAN"], - "HotHysteresis": [0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0], - "Multiplier": 1, - "SendCallback": true, - "PollingDelay": 0, - "PassiveDelay": 1000 - }, - { - "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": "FLASH_LED_REDUCE", - "Type": "UNKNOWN", - "VirtualSensor": true, - "Formula": "COUNT_THRESHOLD", - "TriggerSensor": "vdroop2", - "Combination": ["battery", "battery_cycle", "vdroop2"], - "Coefficient": [-10000, 400, 1000], - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", 3.0, "NAN", "NAN"], - "Multiplier": 1, - "PollingDelay": 0, - "PassiveDelay": 1000, - "SendCallback": true, - "SendPowerHint": true - }, - { - "Name": "soc_therm", - "Type": "UNKNOWN", - "TempPath": "/dev/thermal/tz-by-name/soc_therm/tz_temp", - "Multiplier": 0.001 - }, - { - "Name": "rffe_therm", - "Type": "UNKNOWN", - "TempPath": "/dev/thermal/tz-by-name/rffe_therm/tz_temp", - "Multiplier": 0.001 - }, - { - "Name": "modem_therm", - "Type": "UNKNOWN", - "TempPath": "/dev/thermal/tz-by-name/modem_therm/tz_temp", - "Multiplier": 0.001 - }, - { - "Name": "gnss_tcxo_therm", - "Type": "UNKNOWN", - "TempPath": "/dev/thermal/tz-by-name/gnss_tcxo_therm/tz_temp", - "Multiplier": 0.001 - }, - { - "Name": "usb_conn_therm", - "Type": "UNKNOWN", - "HotThreshold": ["NAN", 30.79, "NAN", "NAN", "NAN", "NAN", "NAN"], - "TempPath": "/dev/thermal/tz-by-name/usb_conn_therm/tz_temp", - "Multiplier": 0.001, - "PollingDelay": 300000, - "PassiveDelay": 7000 - }, - { - "Name": "charger_therm", - "Type": "UNKNOWN", - "HotThreshold": ["NAN", 34.89, "NAN", "NAN", "NAN", "NAN", "NAN"], - "TempPath": "/dev/thermal/tz-by-name/charger_therm/tz_temp", - "Multiplier": 0.001, - "PollingDelay": 300000, - "PassiveDelay": 7000 - }, - { - "Name": "inner_brightness", - "Type": "UNKNOWN", - "Multiplier": 1 - }, - { - "Name": "OPEN_WEIGHT", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "Formula": "COUNT_THRESHOLD", - "StepRatio": 0.2, - "Combination": ["inner_brightness"], - "Coefficient": [1.0], - "Multiplier": 1, - "PassiveDelay": 7000 - }, - { - "Name": "CLOSE_WEIGHT", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "Formula": "WEIGHTED_AVG", - "Combination": ["1", "OPEN_WEIGHT"], - "CombinationType": ["CONSTANT", "SENSOR"], - "Coefficient": [1.0, -1.0], - "Multiplier": 1 - }, - { - "Name": "VIRTUAL-SKIN-OPEN", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "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-CLOSE", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "Formula": "WEIGHTED_AVG", - "Combination": ["soc_therm", "rffe_therm", "modem_therm"], - "Coefficient": [0.223, 0.175, 0.493], - "Offset": 2631, - "Multiplier": 0.001 - }, - { - "Name": "VIRTUAL-SKIN", - "Type": "SKIN", - "Version": "0.1", - "VirtualSensor": true, - "TriggerSensor": "charger_therm", - "Formula": "WEIGHTED_AVG", - "Combination": ["VIRTUAL-SKIN-OPEN", "VIRTUAL-SKIN-CLOSE"], - "Coefficient": ["OPEN_WEIGHT", "CLOSE_WEIGHT"], - "CoefficientType": ["SENSOR", "SENSOR"], - "HotThreshold": ["NAN", 39.0, 43.0, 45.0, 46.5, 100.0, 140.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": "charger_therm", - "Formula": "MAXIMUM", - "Combination": ["VIRTUAL-SKIN"], - "Coefficient": [1.0], - "HotThreshold": ["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 140.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": "charger_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": "S3M_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": "S2M_VDD_CPUCL2", - "CdevCeiling": [0, 8, 8, 8, 8, 8, 8] - } - ] - }, - { - "Name": "VIRTUAL-SKIN-CPU-MID", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "TriggerSensor": "charger_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, 6, 6, 6, 6, 6, 6] - }, - { - "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, 9, 9, 9, 9, 9, 9] - }, - { - "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, 12, 12, 12, 12, 12, 12] - } - ], - "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": "charger_therm", - "Formula": "MAXIMUM", - "Combination": ["VIRTUAL-SKIN"], - "Coefficient": [1.0], - "HotThreshold": ["NAN", 41.0, 43.0, 52.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, 8, 8, 8, 8, 8, 8] - }, - { - "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, 11, 11, 11, 11, 11, 11] - }, - { - "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, 13, 13, 13, 13, 13, 13] - } - ], - "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, 6, 6, 6, 6, 6, 6] - }, - { - "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, 9, 9, 9, 9, 9, 9] - }, - { - "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, 12, 12, 12, 12, 12, 12] - } - ] - } - ] - }, - { - "Name": "VIRTUAL-SKIN-CPU-GPU", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "TriggerSensor": "charger_therm", - "Formula": "MAXIMUM", - "Combination": ["VIRTUAL-SKIN"], - "Coefficient": [1.0], - "HotThreshold": ["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 140.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, 8, 8, 8, 8, 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": "S3M_VDD_CPUCL1", - "CdevCeiling": [0, 11, 11, 11, 11, 14, 14], - "LimitInfo": [0, 0, 0, 0, 0, 14, 14] - }, - { - "CdevRequest": "thermal-cpufreq-2", - "CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1], - "MaxReleaseStep": 1, - "MaxThrottleStep": 2, - "BindedPowerRail": "S2M_VDD_CPUCL2", - "CdevCeiling": [0, 13, 13, 13, 13, 14, 14], - "LimitInfo": [0, 0, 0, 0, 0, 14, 14] - }, - { - "CdevRequest": "thermal-gpufreq-0", - "CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1], - "MaxReleaseStep": 1, - "MaxThrottleStep": 1, - "BindedPowerRail": "S2S_VDD_G3D", - "CdevCeiling": [0, 8, 8, 8, 9, 11, 11], - "LimitInfo": [0, 0, 0, 0, 0, 11, 11] - } - ] - }, - { - "Name": "VIRTUAL-SKIN-GPU", - "Type": "UNKNOWN", - "Hidden": true, - "VirtualSensor": true, - "TriggerSensor": "charger_therm", - "Formula": "MAXIMUM", - "Combination": ["VIRTUAL-SKIN"], - "Coefficient": [1.0], - "HotThreshold": ["NAN", 43.0, 45.0, 46.5, 52.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, 8, 8, 9, 11, 11, 11] - } - ] - }, - { - "Name": "cellular-emergency", - "Type": "POWER_AMPLIFIER", - "VirtualSensor": true, - "TriggerSensor": "charger_therm", - "Formula": "MAXIMUM", - "Combination": ["VIRTUAL-SKIN"], - "Coefficient": [1.0], - "HotThreshold": ["NAN", "NAN", "NAN", "NAN", "NAN", 138.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-CHARGE", - "Type": "UNKNOWN", - "Version": "0.1", - "VirtualSensor": true, - "TriggerSensor": "charger_therm", - "Formula": "MAXIMUM", - "Combination": ["VIRTUAL-SKIN"], - "Coefficient": [1.0], - "HotThreshold": ["NAN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0], - "HotHysteresis": [0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9], - "Multiplier": 0.001, - "PollingDelay": 300000, - "PassiveDelay": 7000, - "PIDInfo": { - "K_Po": ["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"], - "K_Pu": ["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"], - "K_I": ["NAN", "NAN", 25, "NAN", "NAN", "NAN", "NAN"], - "K_D": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"], - "I_Max": ["NAN", "NAN", 1302, "NAN", "NAN", "NAN", "NAN"], - "S_Power": ["NAN", "NAN", 2527, "NAN", "NAN", "NAN", "NAN"], - "MinAllocPower": ["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"], - "MaxAllocPower": ["NAN", "NAN", 6219, "NAN", "NAN", "NAN", "NAN"], - "I_Cutoff": ["NAN", "NAN", 6, "NAN", "NAN", "NAN", "NAN"], - "I_Default": 1302 - }, - "ExcludedPowerInfo": [ - { - "PowerRail": "PARTIAL_SYSTEM_POWER", - "PowerWeight": [0.12, 0.12, 0.06, 0.06, 0.24, 0.24, 0.24] - } - ], - "BindedCdevInfo": [ - { - "CdevRequest": "chg_mdis", - "CdevWeightForPID": [1, 1, 1, 1, 1, 1, 1], - "MaxReleaseStep": 1, - "MaxThrottleStep": 1, - "CdevCeiling": [0, 25, 25, 25, 26, 26, 26], - "LimitInfo": [0, 0, 1, 1, 1, 26, 26] - } - ] - }, - { - "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, - "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": "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": "chg_mdis", - "Type": "BATTERY" - }, - { - "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": "S2M_VDD_CPUCL2", - "PowerSampleDelay": 7000, - "PowerSampleCount": 1 - }, - { - "Name": "S3M_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", - "S8S_VDD_G3D_L2", - "S9S_VDD_AOC", - "L2S_PLL_MIPI_UFS", - "L9S_GNSS_CORE", - "L21S_VDD2L_MEM", - "VSYS_PWR_DISPLAY", - "VSYS_PWR_WLAN_BT", - "S1M_VDD_MIF", - "S2M_VDD_CPUCL2", - "S3M_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, 1.0, 1.0 - ], - "PowerSampleDelay": 7000, - "PowerSampleCount": 5 - } - ], - "Stats": { - "Sensors": { - "RecordWithDefaultThreshold": ["VIRTUAL-SKIN"], - "RecordWithThreshold": [ - { - "Name": "VIRTUAL-SKIN", - "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 55] - }, - { - "Name": "VIRTUAL-SKIN-SPEAKER", - "Thresholds": [35, 37] - } - ], - "Abnormality": { - "Outlier": { - "Configs": [ - { - "Monitor": ["VIRTUAL-SKIN"], - "TempRange": [0.0, 55.0] - } - ] - }, - "Stuck": { - "Configs": [ - { - "Monitor": ["VIRTUAL-SKIN"], - "TempStuck": { - "MinPollingCount": 8, - "MinStuckDuration": 120000 - } - } - ] - } - } - }, - "CoolingDevices": { - "RecordVotePerSensor": { - "DefaultThresholdEnableAll": true - } - } - } -}