diff --git a/patch/kernel/sunxi-current/xxx-sun50i-h6-update-thermal-configuration.patch b/patch/kernel/sunxi-current/xxx-sun50i-h6-update-thermal-configuration.patch new file mode 100644 index 000000000000..abdf4a3fa5c7 --- /dev/null +++ b/patch/kernel/sunxi-current/xxx-sun50i-h6-update-thermal-configuration.patch @@ -0,0 +1,91 @@ +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index 797222ed9..d63ac3ca9 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -1220,31 +1220,73 @@ + + thermal-zones { + cpu-thermal { +- polling-delay-passive = <0>; +- polling-delay = <0>; ++ /* milliseconds */ ++ polling-delay-passive = <250>; ++ polling-delay = <1000>; + thermal-sensors = <&ths 0>; + + trips { +- cpu_hot_trip: cpu-hot { ++ cpu_warm: cpu_warm { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ ++ cpu_hot_pre: cpu_hot_pre { + temperature = <80000>; + hysteresis = <2000>; + type = "passive"; ++ }; ++ ++ cpu_hot: cpu_hot { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; + }; + +- cpu_very_hot_trip: cpu-very-hot { +- temperature = <100000>; +- hysteresis = <0>; +- type = "critical"; ++ cpu_very_hot_pre: cpu_very_hot_pre { ++ temperature = <90000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ ++ cpu_very_hot: cpu_very_hot { ++ temperature = <95000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ ++ cpu_crit: cpu_crit { ++ temperature = <105000>; ++ hysteresis = <2000>; ++ type = "critical"; + }; + }; + + cooling-maps { +- cpu-hot-limit { +- trip = <&cpu_hot_trip>; +- 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>; ++ cpu_warm_limit_cpu { ++ trip = <&cpu_warm>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>; ++ }; ++ ++ cpu_hot_pre_limit_cpu { ++ trip = <&cpu_hot_pre>; ++ cooling-device = <&cpu0 2 3>; ++ }; ++ ++ cpu_hot_limit_cpu { ++ trip = <&cpu_hot>; ++ cooling-device = <&cpu0 3 4>; ++ }; ++ ++ cpu_very_hot_pre_limit_cpu { ++ trip = <&cpu_very_hot_pre>; ++ cooling-device = <&cpu0 5 6>; ++ }; ++ ++ cpu_very_hot_limit_cpu { ++ trip = <&cpu_very_hot>; ++ cooling-device = <&cpu0 7 THERMAL_NO_LIMIT>; + }; + }; + };