From c4752e0a132732a979c3eda34a3d4275487e8ddf Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 7 Jun 2023 20:49:47 +0200 Subject: [PATCH] ipq807x: add critical thermal trips to all thermal zones Kernel 6.1 has started actually enforcing the bindings requirment that thermal zones must have associated trips described as well, otherwise they will fail during probing with: [ 0.865494] thermal_sys: Failed to find 'trips' node [ 0.867254] thermal_sys: Failed to find trip points for thermal-sensor id=4 [ 0.872271] thermal_sys: Failed to find 'trips' node [ 0.878898] thermal_sys: Failed to find trip points for thermal-sensor id=5 [ 0.884222] thermal_sys: Failed to find 'trips' node [ 0.890775] thermal_sys: Failed to find trip points for thermal-sensor id=6 [ 0.896073] thermal_sys: Failed to find 'trips' node [ 0.902668] thermal_sys: Failed to find trip points for thermal-sensor id=7 [ 0.907964] thermal_sys: Failed to find 'trips' node [ 0.914569] thermal_sys: Failed to find trip points for thermal-sensor id=8 [ 0.921203] thermal_sys: Failed to find 'trips' node [ 0.926469] thermal_sys: Failed to find trip points for thermal-sensor id=14 [ 0.931759] thermal_sys: Failed to find 'trips' node [ 0.938703] thermal_sys: Failed to find trip points for thermal-sensor id=15 So, since CPUFreq support isnt yet upstream we can start by adding critical trips to all of the thermal zones to protect the devices against severely overheating. Qualcomm has set the overheat trip at 120 C but lets be conservative and set it at 110 C. This patch has been sent upstream as well. Signed-off-by: Robert Marko --- ...m-ipq8074-add-critical-thermal-trips.patch | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 target/linux/ipq807x/patches-6.1/0134-arm64-dts-qcom-ipq8074-add-critical-thermal-trips.patch diff --git a/target/linux/ipq807x/patches-6.1/0134-arm64-dts-qcom-ipq8074-add-critical-thermal-trips.patch b/target/linux/ipq807x/patches-6.1/0134-arm64-dts-qcom-ipq8074-add-critical-thermal-trips.patch new file mode 100644 index 0000000000..6231d8afb7 --- /dev/null +++ b/target/linux/ipq807x/patches-6.1/0134-arm64-dts-qcom-ipq8074-add-critical-thermal-trips.patch @@ -0,0 +1,197 @@ +From 145bbf2b88990ef3ff00ee541bb7662008683c16 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Wed, 7 Jun 2023 20:26:26 +0200 +Subject: [PATCH] arm64: dts: qcom: ipq8074: add critical thermal trips + +According to bindings, thermal zones must have associated trips as well. +Since we currently dont have CPUFreq support and thus no passive cooling +lets start by defining critical trips to protect the devices against +severe overheating. + +Signed-off-by: Robert Marko +--- + arch/arm64/boot/dts/qcom/ipq8074.dtsi | 96 +++++++++++++++++++++++++++ + 1 file changed, 96 insertions(+) + +--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi ++++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi +@@ -1293,6 +1293,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 4>; ++ ++ trips { ++ nss-top-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + nss0-thermal { +@@ -1300,6 +1308,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 5>; ++ ++ trips { ++ nss-0-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + nss1-thermal { +@@ -1307,6 +1323,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 6>; ++ ++ trips { ++ nss-1-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + wcss-phya0-thermal { +@@ -1314,6 +1338,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 7>; ++ ++ trips { ++ wcss-phya0-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + wcss-phya1-thermal { +@@ -1321,6 +1353,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 8>; ++ ++ trips { ++ wcss-phya1-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + cpu0_thermal: cpu0-thermal { +@@ -1328,6 +1368,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 9>; ++ ++ trips { ++ cpu0-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + cpu1_thermal: cpu1-thermal { +@@ -1335,6 +1383,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 10>; ++ ++ trips { ++ cpu1-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + cpu2_thermal: cpu2-thermal { +@@ -1342,6 +1398,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 11>; ++ ++ trips { ++ cpu2-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + cpu3_thermal: cpu3-thermal { +@@ -1349,6 +1413,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 12>; ++ ++ trips { ++ cpu3-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + cluster_thermal: cluster-thermal { +@@ -1356,6 +1428,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 13>; ++ ++ trips { ++ cluster-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + wcss-phyb0-thermal { +@@ -1363,6 +1443,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 14>; ++ ++ trips { ++ wcss-phyb0-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + + wcss-phyb1-thermal { +@@ -1370,6 +1458,14 @@ + polling-delay = <1000>; + + thermal-sensors = <&tsens 15>; ++ ++ trips { ++ wcss-phyb1-crit { ++ temperature = <110000>; ++ hysteresis = <1000>; ++ type = "critical"; ++ }; ++ }; + }; + }; + }; -- 2.30.2