]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures
authorNeil Armstrong <neil.armstrong@linaro.org>
Mon, 3 Feb 2025 13:23:18 +0000 (14:23 +0100)
committerBjorn Andersson <andersson@kernel.org>
Wed, 26 Feb 2025 02:57:19 +0000 (20:57 -0600)
On the SM8650, the dynamic clock and voltage scaling (DCVS) for the GPU
is done from the HLOS, but the GPU can achieve a much higher temperature
before failing according the reference downstream implementation.

Set higher temperatures in the GPU trip points corresponding to
the temperatures provided by Qualcomm in the dowstream source, much
closer to the junction temperature and with a higher critical
temperature trip in the case the HLOS DCVS cannot handle the
temperature surge.

The tsens MAX_THRESHOLD is set to 120C on those platforms, so set
the hot to 110C to leave a chance to HLOS to react and critical to
115C to avoid the monitor thermal shutdown.

Fixes: 497624ed5506 ("arm64: dts: qcom: sm8650: Throttle the GPU when overheating")
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250203-topic-sm8650-thermal-cpu-idle-v4-2-65e35f307301@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sm8650.dtsi

index e65380fb5fe6d1e42e18ef530059f24a5b0ac53f..ce54f4497b3cb5a08dee3e1fa5d5d2a8b9f7913e 100644 (file)
 
                        trips {
                                gpu0_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu1_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu2_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu3_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu4_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu5_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu6_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };
 
                        trips {
                                gpu7_alert0: trip-point0 {
-                                       temperature = <85000>;
+                                       temperature = <95000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <90000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
 
                                trip-point2 {
-                                       temperature = <110000>;
-                                       hysteresis = <1000>;
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
                                        type = "critical";
                                };
                        };