[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250103-topic-sm8650-thermal-cpu-idle-v1-2-faa1f011ecd9@linaro.org>
Date: Fri, 03 Jan 2025 15:38:27 +0100
From: Neil Armstrong <neil.armstrong@...aro.org>
To: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>
Cc: linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, Neil Armstrong <neil.armstrong@...aro.org>
Subject: [PATCH 2/2] arm64: dts: qcom: sm8650: setup gpu thermal with
higher temperatures
On the SM8650, the dynamic clock and voltage scaling (DCVS) for the GPU
is done in an hardware controlled loop by the GPU Management Unit (GMU).
Since the GMU does a better job at maintaining the GPUs temperature in an
acceptable range by taking in account more parameters like the die
characteristics or other internal sensors, it makes no sense to try
and reproduce a similar set of constraints with the Linux devfreq thermal
core.
Instead, set higher temperatures in the GPU trip points corresponding to
the temperatures provided by Qualcomm in the dowstream source, which will
trigger the devfreq thermal core if the GMU cannot handle the temperature
surge, and try our best to avoid reaching the critical temperature trip
point which should trigger an inevitable thermal shutdown.
Fixes: 497624ed5506 ("arm64: dts: qcom: sm8650: Throttle the GPU when overheating")
Signed-off-by: Neil Armstrong <neil.armstrong@...aro.org>
---
arch/arm64/boot/dts/qcom/sm8650.dtsi | 48 ++++++++++++++++++------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 448374a32e07151e35727d92fab77356769aea8a..ddcb57886eb5eac2a70d28e6ad68fc6820b5dcf1 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -6507,19 +6507,19 @@ map0 {
trips {
gpu0_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6540,19 +6540,19 @@ map0 {
trips {
gpu1_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6573,19 +6573,19 @@ map0 {
trips {
gpu2_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6606,19 +6606,19 @@ map0 {
trips {
gpu3_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6639,19 +6639,19 @@ map0 {
trips {
gpu4_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6672,19 +6672,19 @@ map0 {
trips {
gpu5_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6705,19 +6705,19 @@ map0 {
trips {
gpu6_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
@@ -6738,19 +6738,19 @@ map0 {
trips {
gpu7_alert0: trip-point0 {
- temperature = <85000>;
+ temperature = <95000>;
hysteresis = <1000>;
type = "passive";
};
trip-point1 {
- temperature = <90000>;
+ temperature = <115000>;
hysteresis = <1000>;
type = "hot";
};
trip-point2 {
- temperature = <110000>;
+ temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
--
2.34.1
Powered by blists - more mailing lists