From: Manaf Meethalavalappu Pallikunhi <[email protected]>

The GPU does not throttle its speed automatically when it
reaches high temperatures. Set up GPU cooling by throttling
the GPU speed when it reaches 95°C.

Signed-off-by: Manaf Meethalavalappu Pallikunhi 
<[email protected]>
Signed-off-by: Akhil P Oommen <[email protected]>
---
 arch/arm64/boot/dts/qcom/glymur.dtsi | 240 +++++++++++++++++++++++++++--------
 1 file changed, 184 insertions(+), 56 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi 
b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 01a2e32e503b..e109fb5b35a4 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -22,6 +22,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/thermal/thermal.h>
 
 #include "glymur-ipcc.h"
 
@@ -7149,13 +7150,22 @@ aoss-7-critical {
                };
 
                thermal_gpu_0_0: gpu-0-0-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 1>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu00_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu00_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-0-0-critical {
@@ -7164,16 +7174,26 @@ gpu-0-0-critical {
                                        type = "critical";
                                };
                        };
+
                };
 
                thermal_gpu_0_1: gpu-0-1-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 2>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu01_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu01_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-0-1-critical {
@@ -7185,13 +7205,22 @@ gpu-0-1-critical {
                };
 
                thermal_gpu_0_2: gpu-0-2-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 3>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu02_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu02_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-0-2-critical {
@@ -7203,13 +7232,22 @@ gpu-0-2-critical {
                };
 
                thermal_gpu_1_0: gpu-1-0-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 4>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu10_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu10_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-1-0-critical {
@@ -7221,13 +7259,22 @@ gpu-1-0-critical {
                };
 
                thermal_gpu_1_1: gpu-1-1-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 5>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu11_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu11_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-1-1-critical {
@@ -7239,13 +7286,22 @@ gpu-1-1-critical {
                };
 
                thermal_gpu_1_2: gpu-1-2-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 6>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu12_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu12_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-1-2-critical {
@@ -7257,13 +7313,22 @@ gpu-1-2-critical {
                };
 
                thermal_gpu_2_0: gpu-2-0-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 7>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu20_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu20_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-2-0-critical {
@@ -7275,13 +7340,22 @@ gpu-2-0-critical {
                };
 
                thermal_gpu_2_1: gpu-2-1-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 8>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu21_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu21_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-2-1-critical {
@@ -7293,13 +7367,22 @@ gpu-2-1-critical {
                };
 
                thermal_gpu_2_2: gpu-2-2-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 9>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu22_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu22_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-2-2-critical {
@@ -7311,13 +7394,22 @@ gpu-2-2-critical {
                };
 
                thermal_gpu_3_0: gpu-3-0-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 10>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu30_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu30_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-3-0-critical {
@@ -7329,13 +7421,22 @@ gpu-3-0-critical {
                };
 
                thermal_gpu_3_1: gpu-3-1-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 11>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu31_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu31_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-3-1-critical {
@@ -7347,13 +7448,22 @@ gpu-3-1-critical {
                };
 
                thermal_gpu_3_2: gpu-3-2-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 12>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu32_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpu32_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpu-3-2-critical {
@@ -7365,13 +7475,22 @@ gpu-3-2-critical {
                };
 
                thermal_gpuss_0: gpuss-0-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 13>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss0_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpuss0_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpuss-0-critical {
@@ -7383,13 +7502,22 @@ gpuss-0-critical {
                };
 
                thermal_gpuss_1: gpuss-1-thermal {
+                       polling-delay-passive = <100>;
+
                        thermal-sensors = <&tsens7 14>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss1_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <5000>;
-                                       type = "hot";
+                               gpuss1_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
                                };
 
                                gpuss-1-critical {

-- 
2.51.0

Reply via email to