* [PATCH 0/2] Add QMI TMD based cooling support for the Shikra CDSP and Modem
@ 2026-09-11 5:03 Dipa Ramesh Mantre
2026-09-11 5:03 ` [PATCH 1/2] remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra Dipa Ramesh Mantre
2026-09-11 5:03 ` [PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling Dipa Ramesh Mantre
0 siblings, 2 replies; 5+ messages in thread
From: Dipa Ramesh Mantre @ 2026-09-11 5:03 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-remoteproc, linux-kernel, devicetree,
gaurav.kohli, Dipa Ramesh Mantre
This series introduces Qualcomm Messaging Interface based Thermal
Mitigation Device (QMI TMD) support to control thermal mitigation
on remote subsystems such as the Modem and CDSP for Shikra.
Depends-on: https://lore.kernel.org/all/20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com/
Signed-off-by: Dipa Ramesh Mantre <dipa.mantre@oss.qualcomm.com>
---
Dipa Ramesh Mantre (2):
remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra
arm64: dts: qcom: shikra: Enable CDSP & Modem cooling
arch/arm64/boot/dts/qcom/shikra.dtsi | 71 ++++++++++++++++++++++++++++++++++--
drivers/remoteproc/qcom_q6v5_pas.c | 6 +++
2 files changed, 74 insertions(+), 3 deletions(-)
---
base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
change-id: 20260908-shikra_qmi_tmd-b1328cb84eaa
Best regards,
--
Dipa Ramesh Mantre <dipa.mantre@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra
2026-09-11 5:03 [PATCH 0/2] Add QMI TMD based cooling support for the Shikra CDSP and Modem Dipa Ramesh Mantre
@ 2026-09-11 5:03 ` Dipa Ramesh Mantre
2026-09-11 5:09 ` sashiko-bot
2026-09-11 5:03 ` [PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling Dipa Ramesh Mantre
1 sibling, 1 reply; 5+ messages in thread
From: Dipa Ramesh Mantre @ 2026-09-11 5:03 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-remoteproc, linux-kernel, devicetree,
gaurav.kohli, Dipa Ramesh Mantre
Add QMI TMD instance IDs and cooling device name arrays for CDSP
and MPSS subsystems on Shikra to enable thermal mitigation support.
Signed-off-by: Dipa Ramesh Mantre <dipa.mantre@oss.qualcomm.com>
---
drivers/remoteproc/qcom_q6v5_pas.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index a005546c265d..3daaed6ca596 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1660,6 +1660,9 @@ static const struct qcom_pas_data shikra_cdsp_resource = {
.sysmon_name = "cdsp",
.ssctl_id = 0x17,
.smem_host_id = 5,
+ .tmd_instance_id = 0x43,
+ .tmd_name = cdsp_tmd_name,
+ .num_tmd = ARRAY_SIZE(cdsp_tmd_name),
};
static const struct qcom_pas_data shikra_lpaicp_resource = {
@@ -1688,6 +1691,9 @@ static const struct qcom_pas_data shikra_mpss_resource = {
.ssr_name = "mpss",
.sysmon_name = "modem",
.ssctl_id = 0x12,
+ .tmd_instance_id = 0x0,
+ .tmd_name = modem_tmd_name,
+ .num_tmd = ARRAY_SIZE(modem_tmd_name),
};
static const struct qcom_pas_data sm8650_cdsp_resource = {
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling
2026-09-11 5:03 [PATCH 0/2] Add QMI TMD based cooling support for the Shikra CDSP and Modem Dipa Ramesh Mantre
2026-09-11 5:03 ` [PATCH 1/2] remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra Dipa Ramesh Mantre
@ 2026-09-11 5:03 ` Dipa Ramesh Mantre
2026-09-11 5:14 ` sashiko-bot
1 sibling, 1 reply; 5+ messages in thread
From: Dipa Ramesh Mantre @ 2026-09-11 5:03 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-remoteproc, linux-kernel, devicetree,
gaurav.kohli, Dipa Ramesh Mantre
Unlike the CPU, the CDSP/Modem does not throttle its speed automatically
when it reaches high temperatures in shikra.
Set up CDSP/Modem cooling by throttling the CDSP and modem when they
reach 115°C using the QMI TMD cooling device framework.
Signed-off-by: Dipa Ramesh Mantre <dipa.mantre@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 71 ++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index c1f06f692f66..55bac1b57cba 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -10,6 +10,7 @@
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,osm-l3.h>
#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/thermal/qcom,pas.h>
#include <dt-bindings/interconnect/qcom,rpm-icc.h>
#include <dt-bindings/interconnect/qcom,shikra.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -2007,6 +2008,8 @@ remoteproc_mpss: remoteproc@6080000 {
qcom,smem-states = <&modem_smp2p_out 0>;
qcom,smem-state-names = "stop";
+ #cooling-cells = <3>;
+
status = "disabled";
glink-edge {
@@ -2047,6 +2050,8 @@ remoteproc_cdsp: remoteproc@b300000 {
qcom,smem-states = <&cdsp_smp2p_out 0>;
qcom,smem-state-names = "stop";
+ #cooling-cells = <3>;
+
status = "disabled";
glink-edge {
@@ -3868,6 +3873,8 @@ map0 {
};
nsp-thermal {
+ polling-delay-passive = <200>;
+
thermal-sensors = <&tsens0 7>;
trips {
@@ -3877,15 +3884,31 @@ trip-point0 {
type = "hot";
};
- nsp-critical {
+ nsp_alert1: nsp-alert1 {
temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
+ nsp-critical {
+ temperature = <118000>;
hysteresis = <0>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&nsp_alert1>;
+ cooling-device = <&remoteproc_cdsp QCOM_TMD_CDSP_SW
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
mdmss0-thermal {
+ polling-delay-passive = <200>;
+
thermal-sensors = <&tsens0 8>;
trips {
@@ -3895,15 +3918,37 @@ trip-point0 {
type = "hot";
};
- mdmss0-critical {
+ mdmss0_alert1: mdmss0-alert1 {
temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
+ mdmss0-critical {
+ temperature = <118000>;
hysteresis = <0>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&mdmss0_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_PA
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+
+ map1 {
+ trip = <&mdmss0_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_MODEM
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
mdmss1-thermal {
+ polling-delay-passive = <200>;
+
thermal-sensors = <&tsens0 9>;
trips {
@@ -3913,12 +3958,32 @@ trip-point0 {
type = "hot";
};
- mdmss1-critical {
+ mdmss1_alert1: mdmss1-alert1 {
temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
+ mdmss1-critical {
+ temperature = <118000>;
hysteresis = <0>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&mdmss1_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_PA
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+
+ map1 {
+ trip = <&mdmss1_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_MODEM
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
camera-thermal {
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra
2026-09-11 5:03 ` [PATCH 1/2] remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra Dipa Ramesh Mantre
@ 2026-09-11 5:09 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-09-11 5:09 UTC (permalink / raw)
To: Dipa Ramesh Mantre; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Compilation errors due to missing fields in `struct qcom_pas_data` and undeclared identifiers for TMD names.
--
commit b0cce49cb204b7f4f532f2034375d026df2ba65c
Author: Dipa Ramesh Mantre <dipa.mantre@oss.qualcomm.com>
remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra
This commit adds QMI TMD instance IDs and cooling device name arrays for
CDSP and MPSS subsystems on Shikra to enable thermal mitigation support.
> diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
> index a005546c265d0..3daaed6ca5963 100644
> --- a/drivers/remoteproc/qcom_q6v5_pas.c
> +++ b/drivers/remoteproc/qcom_q6v5_pas.c
> @@ -1660,6 +1660,9 @@ static const struct qcom_pas_data shikra_cdsp_resource = {
> .sysmon_name = "cdsp",
> .ssctl_id = 0x17,
> .smem_host_id = 5,
> + .tmd_instance_id = 0x43,
> + .tmd_name = cdsp_tmd_name,
> + .num_tmd = ARRAY_SIZE(cdsp_tmd_name),
[Severity: Low]
Is this patch missing a prerequisite dependency? It appears the
tmd_instance_id, tmd_name, and num_tmd fields do not exist in the local
definition of struct qcom_pas_data, and cdsp_tmd_name is undeclared. This
currently results in a build regression.
[ ... ]
> @@ -1688,6 +1691,9 @@ static const struct qcom_pas_data shikra_mpss_resource = {
> .ssr_name = "mpss",
> .sysmon_name = "modem",
> .ssctl_id = 0x12,
> + .tmd_instance_id = 0x0,
> + .tmd_name = modem_tmd_name,
> + .num_tmd = ARRAY_SIZE(modem_tmd_name),
[Severity: Low]
Similarly, does this rely on an unmerged patch? The modem_tmd_name array
is undeclared here as well.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260911-shikra_qmi_tmd-v1-0-96c1cca82f30@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling
2026-09-11 5:03 ` [PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling Dipa Ramesh Mantre
@ 2026-09-11 5:14 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-09-11 5:14 UTC (permalink / raw)
To: Dipa Ramesh Mantre; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Low] The patch introduces a fatal build failure by including a non-existent device tree bindings header file and referencing undefined macros for the QMI TMD cooling framework.
- [Low] The addition of the `#cooling-cells` property to the remoteproc nodes violates strict Device Tree schema bindings.
--
commit 4b1a1d4f27b1c457bd265f6d0f4a5b333e378019
Author: Dipa Ramesh Mantre <dipa.mantre@oss.qualcomm.com>
arm64: dts: qcom: shikra: Enable CDSP & Modem cooling
This commit sets up CDSP and modem cooling by throttling them using the
QMI TMD cooling device framework when they reach high temperatures.
> diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
> index c1f06f692f664..55bac1b57cbac 100644
> --- a/arch/arm64/boot/dts/qcom/shikra.dtsi
> +++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
> @@ -10,6 +10,7 @@
> #include <dt-bindings/interconnect/qcom,icc.h>
> #include <dt-bindings/interconnect/qcom,osm-l3.h>
> #include <dt-bindings/dma/qcom-gpi.h>
> +#include <dt-bindings/thermal/qcom,pas.h>
[Severity: Low]
The header file <dt-bindings/thermal/qcom,pas.h> appears to be completely
missing from the tree.
Does this include cause a fatal build failure?
[ ... ]
> @@ -2007,6 +2008,8 @@ remoteproc_mpss: remoteproc@6080000 {
> qcom,smem-states = <&modem_smp2p_out 0>;
> qcom,smem-state-names = "stop";
>
> + #cooling-cells = <3>;
[Severity: Low]
The #cooling-cells property is not documented in the remoteproc schemas.
The qcom,shikra-pas.yaml and qcom,pas-common.yaml bindings specify
unevaluatedProperties: false.
Does adding this property cause make dtbs_check to fail with a schema
validation error?
[ ... ]
> @@ -2047,6 +2050,8 @@ remoteproc_cdsp: remoteproc@b300000 {
> qcom,smem-states = <&cdsp_smp2p_out 0>;
> qcom,smem-state-names = "stop";
>
> + #cooling-cells = <3>;
[Severity: Low]
This seems to add #cooling-cells to the remoteproc_cdsp node as well.
Does this also trigger the same strict DT schema validation failure?
[ ... ]
> @@ -3877,15 +3884,31 @@ trip-point0 {
> type = "hot";
> };
>
> - nsp-critical {
> + nsp_alert1: nsp-alert1 {
> temperature = <115000>;
> + hysteresis = <5000>;
> + type = "passive";
> + };
> +
> + nsp-critical {
> + temperature = <118000>;
> hysteresis = <0>;
> type = "critical";
> };
> };
> +
> + cooling-maps {
> + map0 {
> + trip = <&nsp_alert1>;
> + cooling-device = <&remoteproc_cdsp QCOM_TMD_CDSP_SW
> + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
[Severity: Low]
The <dt-bindings/thermal/qcom,pas.h> header is missing, which leaves macros
like QCOM_TMD_CDSP_SW, QCOM_TMD_PA, and QCOM_TMD_MODEM undefined.
Will this line lead to a fatal device tree compiler error?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260911-shikra_qmi_tmd-v1-0-96c1cca82f30@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-11 5:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 5:03 [PATCH 0/2] Add QMI TMD based cooling support for the Shikra CDSP and Modem Dipa Ramesh Mantre
2026-09-11 5:03 ` [PATCH 1/2] remoteproc: qcom_q6v5_pas: Add QMI TMD cooling support for Shikra Dipa Ramesh Mantre
2026-09-11 5:09 ` sashiko-bot
2026-09-11 5:03 ` [PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling Dipa Ramesh Mantre
2026-09-11 5:14 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox