diff --git a/projects/ROCKNIX/devices/SM8750/patches/linux/0075-arm64-dts-qcom-sm8750-add-CPU-thermal-cooling.patch b/projects/ROCKNIX/devices/SM8750/patches/linux/0075-arm64-dts-qcom-sm8750-add-CPU-thermal-cooling.patch index 4b74b8b5460..caae523d03c 100644 --- a/projects/ROCKNIX/devices/SM8750/patches/linux/0075-arm64-dts-qcom-sm8750-add-CPU-thermal-cooling.patch +++ b/projects/ROCKNIX/devices/SM8750/patches/linux/0075-arm64-dts-qcom-sm8750-add-CPU-thermal-cooling.patch @@ -1,4 +1,3 @@ -From: KONKR Pocket FIT Elite port Subject: [PATCH] arm64: dts: qcom: sm8750: add CPU thermal cooling The per-core thermal zones only had a 120C hot and 125C critical trip, @@ -12,7 +11,7 @@ register automatically once the CPU nodes advertise #cooling-cells. --- --- a/arch/arm64/boot/dts/qcom/sm8750.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi -@@ -44,6 +44,7 @@ +@@ -42,6 +42,7 @@ next-level-cache = <&l2_0>; power-domains = <&cpu_pd0>, <&scmi_dvfs 0>; power-domain-names = "psci", "perf"; @@ -20,7 +19,7 @@ register automatically once the CPU nodes advertise #cooling-cells. l2_0: l2-cache { compatible = "cache"; -@@ -60,6 +61,7 @@ +@@ -58,6 +59,7 @@ next-level-cache = <&l2_0>; power-domains = <&cpu_pd1>, <&scmi_dvfs 0>; power-domain-names = "psci", "perf"; @@ -28,7 +27,7 @@ register automatically once the CPU nodes advertise #cooling-cells. }; cpu2: cpu@200 { -@@ -70,6 +72,7 @@ +@@ -68,6 +70,7 @@ next-level-cache = <&l2_0>; power-domains = <&cpu_pd2>, <&scmi_dvfs 0>; power-domain-names = "psci", "perf"; @@ -36,7 +35,7 @@ register automatically once the CPU nodes advertise #cooling-cells. }; cpu3: cpu@300 { -@@ -80,6 +83,7 @@ +@@ -78,6 +81,7 @@ next-level-cache = <&l2_0>; power-domains = <&cpu_pd3>, <&scmi_dvfs 0>; power-domain-names = "psci", "perf"; @@ -44,7 +43,7 @@ register automatically once the CPU nodes advertise #cooling-cells. }; cpu4: cpu@400 { -@@ -90,6 +94,7 @@ +@@ -88,6 +92,7 @@ next-level-cache = <&l2_0>; power-domains = <&cpu_pd4>, <&scmi_dvfs 0>; power-domain-names = "psci", "perf"; @@ -52,7 +51,7 @@ register automatically once the CPU nodes advertise #cooling-cells. }; cpu5: cpu@500 { -@@ -100,6 +105,7 @@ +@@ -98,6 +103,7 @@ next-level-cache = <&l2_0>; power-domains = <&cpu_pd5>, <&scmi_dvfs 0>; power-domain-names = "psci", "perf"; @@ -60,7 +59,7 @@ register automatically once the CPU nodes advertise #cooling-cells. }; cpu6: cpu@10000 { -@@ -110,6 +116,7 @@ +@@ -108,6 +114,7 @@ next-level-cache = <&l2_1>; power-domains = <&cpu_pd6>, <&scmi_dvfs 1>; power-domain-names = "psci", "perf"; @@ -68,7 +67,7 @@ register automatically once the CPU nodes advertise #cooling-cells. l2_1: l2-cache { compatible = "cache"; -@@ -126,6 +133,7 @@ +@@ -124,6 +131,7 @@ next-level-cache = <&l2_1>; power-domains = <&cpu_pd7>, <&scmi_dvfs 1>; power-domain-names = "psci", "perf"; @@ -76,27 +75,35 @@ register automatically once the CPU nodes advertise #cooling-cells. }; cpu-map { -@@ -6242,10 +6250,46 @@ - }; - +@@ -5964,10 +5972,62 @@ cpu-0-0-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 1>; + cooling-maps { + map0 { -+ trip = <&cpu_0_0_0_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_0_0_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_0_0_alert1>; ++ trip = <&cpu_0_0_0_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_0_0_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -108,43 +115,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_0_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_0_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_0_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_0_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_0_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6260,10 +6304,46 @@ - }; + }; +@@ -5982,10 +6042,62 @@ cpu-0-0-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 2>; + cooling-maps { + map0 { -+ trip = <&cpu_0_0_1_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_0_1_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_0_1_alert1>; ++ trip = <&cpu_0_0_1_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_0_1_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -156,43 +179,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_0_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_0_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_0_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_0_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_0_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6278,10 +6358,46 @@ - }; + }; +@@ -6000,10 +6112,62 @@ cpu-0-1-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 3>; + cooling-maps { + map0 { -+ trip = <&cpu_0_1_0_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_1_0_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_1_0_alert1>; ++ trip = <&cpu_0_1_0_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_1_0_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -204,43 +243,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_1_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_1_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_1_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_1_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_1_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6296,10 +6412,46 @@ - }; + }; +@@ -6018,10 +6182,62 @@ cpu-0-1-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 4>; + cooling-maps { + map0 { -+ trip = <&cpu_0_1_1_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_1_1_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_1_1_alert1>; ++ trip = <&cpu_0_1_1_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_1_1_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -252,43 +307,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_1_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_1_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_0_1_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_0_1_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_1_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6314,10 +6466,46 @@ - }; + }; +@@ -6036,10 +6252,62 @@ cpu-0-2-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 5>; + cooling-maps { + map0 { -+ trip = <&cpu_0_2_0_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_2_0_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_2_0_alert1>; ++ trip = <&cpu_0_2_0_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_2_0_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -300,43 +371,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_2_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_2_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_0_2_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_0_2_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_2_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6332,10 +6520,46 @@ - }; + }; +@@ -6054,10 +6322,62 @@ cpu-0-2-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 6>; + cooling-maps { + map0 { -+ trip = <&cpu_0_2_1_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_2_1_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_2_1_alert1>; ++ trip = <&cpu_0_2_1_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_2_1_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -348,43 +435,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_2_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_2_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_0_2_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_0_2_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_2_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6350,10 +6574,46 @@ - }; + }; +@@ -6072,10 +6392,62 @@ cpu-0-3-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 7>; + cooling-maps { + map0 { -+ trip = <&cpu_0_3_0_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_3_0_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_3_0_alert1>; ++ trip = <&cpu_0_3_0_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_3_0_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -396,43 +499,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_3_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_3_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_3_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_3_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_3_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6368,10 +6628,46 @@ - }; + }; +@@ -6090,10 +6462,62 @@ cpu-0-3-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 8>; + cooling-maps { + map0 { -+ trip = <&cpu_0_3_1_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_3_1_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_3_1_alert1>; ++ trip = <&cpu_0_3_1_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_3_1_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -444,43 +563,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_3_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_3_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_0_3_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_0_3_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_3_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6386,10 +6682,46 @@ - }; + }; +@@ -6108,10 +6532,62 @@ cpu-0-4-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 9>; + cooling-maps { + map0 { -+ trip = <&cpu_0_4_0_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_4_0_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_4_0_alert1>; ++ trip = <&cpu_0_4_0_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_4_0_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -492,43 +627,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_4_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_4_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_4_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_4_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_4_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6404,10 +6736,46 @@ - }; + }; +@@ -6126,10 +6602,62 @@ cpu-0-4-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 10>; + cooling-maps { + map0 { -+ trip = <&cpu_0_4_1_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_4_1_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_4_1_alert1>; ++ trip = <&cpu_0_4_1_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_4_1_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -540,43 +691,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_4_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_4_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_4_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_4_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_4_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6422,10 +6790,46 @@ - }; + }; +@@ -6144,10 +6672,62 @@ cpu-0-5-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 11>; + cooling-maps { + map0 { -+ trip = <&cpu_0_5_0_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_5_0_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_5_0_alert1>; ++ trip = <&cpu_0_5_0_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_5_0_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -588,43 +755,59 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_5_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_5_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_0_5_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_5_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_0_5_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6440,10 +6844,46 @@ - }; + }; +@@ -6162,10 +6742,62 @@ cpu-0-5-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens0 12>; + cooling-maps { + map0 { -+ trip = <&cpu_0_5_1_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_0_5_1_mitig>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 1>, ++ <&cpu1 THERMAL_NO_LIMIT 1>, ++ <&cpu2 THERMAL_NO_LIMIT 1>, ++ <&cpu3 THERMAL_NO_LIMIT 1>, ++ <&cpu4 THERMAL_NO_LIMIT 1>, ++ <&cpu5 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_0_5_1_alert1>; ++ trip = <&cpu_0_5_1_emerg0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>, ++ <&cpu1 THERMAL_NO_LIMIT 2>, ++ <&cpu2 THERMAL_NO_LIMIT 2>, ++ <&cpu3 THERMAL_NO_LIMIT 2>, ++ <&cpu4 THERMAL_NO_LIMIT 2>, ++ <&cpu5 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_0_5_1_emerg1>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -636,39 +819,51 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_0_5_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_0_5_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_0_5_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_0_5_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_0_5_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6512,10 +6952,38 @@ - }; + }; +@@ -6234,10 +6866,50 @@ cpu-1-0-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens1 1>; + cooling-maps { + map0 { -+ trip = <&cpu_1_0_0_alert0>; -+ cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_1_0_0_mitig>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 1>, ++ <&cpu7 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_1_0_0_alert1>; ++ trip = <&cpu_1_0_0_emerg0>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 2>, ++ <&cpu7 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_1_0_0_emerg1>; + cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; @@ -676,39 +871,51 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_1_0_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_1_0_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_1_0_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_1_0_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_1_0_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6530,10 +6998,38 @@ - }; + }; +@@ -6252,10 +6924,50 @@ cpu-1-0-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens1 2>; + cooling-maps { + map0 { -+ trip = <&cpu_1_0_1_alert0>; -+ cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_1_0_1_mitig>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 1>, ++ <&cpu7 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_1_0_1_alert1>; ++ trip = <&cpu_1_0_1_emerg0>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 2>, ++ <&cpu7 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_1_0_1_emerg1>; + cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; @@ -716,39 +923,51 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_1_0_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_1_0_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_1_0_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_1_0_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_1_0_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6548,10 +7044,38 @@ - }; + }; +@@ -6270,10 +6982,50 @@ cpu-1-1-0-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens1 3>; + cooling-maps { + map0 { -+ trip = <&cpu_1_1_0_alert0>; -+ cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_1_1_0_mitig>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 1>, ++ <&cpu7 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_1_1_0_alert1>; ++ trip = <&cpu_1_1_0_emerg0>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 2>, ++ <&cpu7 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_1_1_0_emerg1>; + cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; @@ -756,39 +975,51 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_1_1_0_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_1_1_0_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ ++ cpu_1_1_0_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ cpu_1_1_0_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_1_1_0_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; + type = "passive"; + }; + -+ trip-point2 { ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; -@@ -6566,10 +7090,38 @@ - }; + }; +@@ -6288,10 +7040,50 @@ cpu-1-1-1-thermal { -+ polling-delay-passive = <250>; ++ polling-delay-passive = <1000>; + thermal-sensors = <&tsens1 4>; + cooling-maps { + map0 { -+ trip = <&cpu_1_1_1_alert0>; -+ cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ trip = <&cpu_1_1_1_mitig>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 1>, ++ <&cpu7 THERMAL_NO_LIMIT 1>; + }; + + map1 { -+ trip = <&cpu_1_1_1_alert1>; ++ trip = <&cpu_1_1_1_emerg0>; ++ cooling-device = <&cpu6 THERMAL_NO_LIMIT 2>, ++ <&cpu7 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ map2 { ++ trip = <&cpu_1_1_1_emerg1>; + cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; @@ -796,19 +1027,27 @@ register automatically once the CPU nodes advertise #cooling-cells. + trips { - trip-point0 { -+ cpu_1_1_1_alert0: trip-point0 { -+ temperature = <90000>; -+ hysteresis = <2000>; ++ cpu_1_1_1_mitig: trip-point0 { ++ temperature = <100000>; ++ hysteresis = <5000>; + type = "passive"; + }; + -+ cpu_1_1_1_alert1: trip-point1 { -+ temperature = <95000>; -+ hysteresis = <2000>; ++ cpu_1_1_1_emerg0: trip-point1 { ++ temperature = <108000>; ++ hysteresis = <8000>; + type = "passive"; + }; + -+ trip-point2 { ++ cpu_1_1_1_emerg1: trip-point2 { ++ temperature = <110000>; ++ hysteresis = <10000>; ++ type = "passive"; ++ }; ++ ++ trip-point3 { temperature = <120000>; hysteresis = <5000>; type = "hot"; + }; + diff --git a/projects/ROCKNIX/devices/SM8750/patches/linux/0077-arm64-dts-qcom-sm8750-add-GPU-thermal-cooling.patch b/projects/ROCKNIX/devices/SM8750/patches/linux/0077-arm64-dts-qcom-sm8750-add-GPU-thermal-cooling.patch new file mode 100644 index 00000000000..773bd909107 --- /dev/null +++ b/projects/ROCKNIX/devices/SM8750/patches/linux/0077-arm64-dts-qcom-sm8750-add-GPU-thermal-cooling.patch @@ -0,0 +1,205 @@ +Subject: [PATCH] arm64: dts: qcom: sm8750: add GPU thermal cooling + +--- +--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi ++++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi +@@ -6360,9 +6360,24 @@ + gpuss0-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 1>; + ++ cooling-maps { ++ gpu0_cdev { ++ trip = <&gpuss0_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss0_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6378,9 +6393,24 @@ + gpuss1-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 2>; + ++ cooling-maps { ++ gpu1_cdev { ++ trip = <&gpuss1_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss1_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6396,9 +6426,24 @@ + gpuss2-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 3>; + ++ cooling-maps { ++ gpu2_cdev { ++ trip = <&gpuss2_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss2_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6414,9 +6459,24 @@ + gpuss3-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 4>; + ++ cooling-maps { ++ gpu3_cdev { ++ trip = <&gpuss3_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss3_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6432,9 +6492,24 @@ + gpuss4-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 5>; + ++ cooling-maps { ++ gpu4_cdev { ++ trip = <&gpuss4_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss4_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6450,9 +6525,24 @@ + gpuss5-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 6>; + ++ cooling-maps { ++ gpu5_cdev { ++ trip = <&gpuss5_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss5_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6468,9 +6558,24 @@ + gpuss6-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 7>; + ++ cooling-maps { ++ gpu6_cdev { ++ trip = <&gpuss6_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss6_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; +@@ -6486,9 +6591,24 @@ + gpuss7-thermal { ++ polling-delay-passive = <250>; ++ + thermal-sensors = <&tsens2 8>; + ++ cooling-maps { ++ gpu7_cdev { ++ trip = <&gpuss7_tj>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ + trips { ++ gpuss7_tj: tj-cfg { ++ temperature = <95000>; ++ hysteresis = <5000>; ++ type = "passive"; ++ }; ++ + trip-point0 { + temperature = <120000>; + hysteresis = <5000>; + type = "hot"; + }; diff --git a/projects/ROCKNIX/packages/hardware/quirks/platforms/SM8750/bin/fancontrol b/projects/ROCKNIX/packages/hardware/quirks/platforms/SM8750/bin/fancontrol index 9e576e41a83..112f40bf1b9 100644 --- a/projects/ROCKNIX/packages/hardware/quirks/platforms/SM8750/bin/fancontrol +++ b/projects/ROCKNIX/packages/hardware/quirks/platforms/SM8750/bin/fancontrol @@ -72,7 +72,8 @@ set_control 1 >/dev/null 2>&1 while true do - CPU_TEMP=$(awk '{total += $1; count++} END {printf "%d", total/count}' ${DEVICE_TEMP_SENSOR}) + # Hottest sensor, not the mean. + CPU_TEMP=$(awk '$1 > max {max = $1} END {printf "%d", max}' ${DEVICE_TEMP_SENSOR}) $DEBUG && log $0 "CPU TEMP: ${CPU_TEMP}" 2>/dev/null INDEX=0 for TEMP in "${TEMPS[@]}"