On 7/3/2026 9:18 PM, Dmitry Baryshkov wrote:
On Fri, Jul 03, 2026 at 10:33:09AM +0530, Gaurav Kohli wrote:
Unlike the CPU, the CDSP/Modem does not throttle its speed automatically
when it reaches high temperatures in kodiak.
Set up CDSP cooling by throttling the cdsp when it reaches 100°C and
for modem when it reaches to 95°C.
Since the remoteproc_mpss node doesn't exist on non modem boards, the
cooling-maps that reference it cause DT compilation errors. To fix that
remove inherited mdmss cooling-map nodes.
Signed-off-by: Gaurav Kohli <[email protected]>
---
arch/arm64/boot/dts/qcom/kodiak.dtsi | 134 ++++++++++++++++++++-
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 17 +++
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 17 +++
.../dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts | 17 +++
.../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 17 +++
.../boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 17 +++
.../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 16 +++
7 files changed, 231 insertions(+), 4 deletions(-)
@@ -7716,6 +7722,8 @@ map0 {
};
nspss0-thermal {
+ polling-delay-passive = <200>;
Why? This applies to all added polling delays.
Thanks for review, will update the reasoning(passive polling mode) in
commit message.
+
thermal-sensors = <&tsens1 3>;
trips {
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index bb5a42b038f1..400d128132fc 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -24,6 +24,23 @@
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_mem;
/delete-node/ &ipa_fw_mem;
+
+&mdmss0_thermal {
+ /delete-node/ cooling-maps;
Don't kill what is unnecessary to be killed. Remove only MPSS maps.
Thanks for review, will change this to delete only the MPSS map entries.
+};
+
+&mdmss1_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss2_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss3_thermal {
+ /delete-node/ cooling-maps;
+};
+
/delete-node/ &mpss_mem;
/delete-node/ &remoteproc_mpss;
/delete-node/ &remoteproc_wpss;
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index 37a3b51323ce..187bc2899191 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -25,6 +25,23 @@
/delete-node/ &rmtfs_mem;
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_mem;
+
+&mdmss0_thermal {
+ /delete-node/ cooling-maps;
But MPSS is there. Why are you removing it?
thanks for review, Let me recheck this and fix this.
+};
+
+&mdmss1_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss2_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss3_thermal {
+ /delete-node/ cooling-maps;
+};
+
/delete-node/ &video_mem;
/delete-node/ &wlan_ce_mem;
/delete-node/ &wpss_mem;
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts
b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts
index a5ad796cb65d..1e190ed18ae5 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts
@@ -22,6 +22,23 @@
/delete-node/ &cdsp_mem;
/delete-node/ &ipa_fw_mem;
/delete-node/ &mpss_mem;
+
+&mdmss0_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss1_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss2_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss3_thermal {
+ /delete-node/ cooling-maps;
+};
+
/delete-node/ &remoteproc_mpss;
/delete-node/ &remoteproc_wpss;
/delete-node/ &rmtfs_mem;
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
index f47efca42d48..8e8dd4efd8c0 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
@@ -23,6 +23,23 @@
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_mem;
/delete-node/ &ipa_fw_mem;
+
+&mdmss0_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss1_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss2_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss3_thermal {
+ /delete-node/ cooling-maps;
+};
+
/delete-node/ &mpss_mem;
/delete-node/ &remoteproc_mpss;
/delete-node/ &remoteproc_wpss;
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi
b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi
index b721a8546800..1e9d7e7b5fa2 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi
@@ -26,8 +26,25 @@ &ipa {
status = "okay";
};
+&mdmss0_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss1_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss2_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss3_thermal {
+ /delete-node/ cooling-maps;
+};
+
&remoteproc_mpss {
compatible = "qcom,sc7280-mss-pil";
+ /delete-property/ #cooling-cells;
reg = <0 0x04080000 0 0x10000>, <0 0x04180000 0 0x48>;
reg-names = "qdsp6", "rmb";
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi
index 3ebc915f0dc2..6642076f62c4 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi
@@ -7,6 +7,22 @@
/* WIFI SKUs save 256M by not having modem/mba/rmtfs memory regions defined. */
+&mdmss0_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss1_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss2_thermal {
+ /delete-node/ cooling-maps;
+};
+
+&mdmss3_thermal {
+ /delete-node/ cooling-maps;
+};
+
/delete-node/ &mpss_mem;
/delete-node/ &remoteproc_mpss;
/delete-node/ &rmtfs_mem;
--
2.34.1