Re: [PATCH v4 01/10] dt-bindings: firmware: qcom: tmd: add TMD device type constants
Daniel Lezcano <[email protected]>
| Newsgroups | org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-hardening,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <[email protected]> |
On 7/3/26 17:42, Dmitry Baryshkov wrote: > On Fri, Jul 03, 2026 at 07:43:39PM +0530, Gaurav Kohli wrote: >> >> >> On 7/3/2026 1:23 PM, Konrad Dybcio wrote: >>> On 7/3/26 7:03 AM, Gaurav Kohli wrote: >>>> Add Device Tree binding constants for Qualcomm Thermal Mitigation >>>> Device (TMD) types used by remoteproc-backed thermal cooling devices. >>>> >>>> Qualcomm remote processors expose thermal mitigation endpoints >>>> through QMI. These endpoints can be registered with the thermal >>>> framework via the `#cooling-cells` property on the remoteproc node. >>>> >>>> The QMI TMD protocol identifies devices using string names (for example, >>>> "pa", "modem", and "cdsp_sw"), while the DT cooling-device binding with >>>> `#cooling-cells = <3>` requires numeric device id in the form: >>>> >>>> <&phandle device_id min_state max_state> >>>> >>>> Define common TMD device index constants shared across currently >>>> supported platforms. If a future target requires a different mapping, >>>> additional target-specific constants can be introduced while preserving >>>> existing DT ABI. >>>> >>>> Signed-off-by: Gaurav Kohli <[email protected]> >>>> --- >>>> MAINTAINERS | 1 + >>>> include/dt-bindings/firmware/qcom,qmi-tmd.h | 20 ++++++++++++++++++++ >>>> 2 files changed, 21 insertions(+) >>>> >>>> diff --git a/MAINTAINERS b/MAINTAINERS >>>> index 57656ec0e9d5..ffd85fd1dd80 100644 >>>> --- a/MAINTAINERS >>>> +++ b/MAINTAINERS >>>> @@ -3410,6 +3410,7 @@ F: drivers/firmware/qcom/ >>>> F: drivers/soc/qcom/ >>>> F: drivers/watchdog/gunyah_wdt.c >>>> F: include/dt-bindings/arm/qcom,ids.h >>>> +F: include/dt-bindings/firmware/qcom,qmi-tmd.h >>>> F: include/dt-bindings/firmware/qcom,scm.h >>>> F: include/dt-bindings/soc/qcom* >>>> F: include/linux/firmware/qcom >>>> diff --git a/include/dt-bindings/firmware/qcom,qmi-tmd.h b/include/dt-bindings/firmware/qcom,qmi-tmd.h >>>> new file mode 100644 >>>> index 000000000000..73efecef0f3c >>>> --- /dev/null >>>> +++ b/include/dt-bindings/firmware/qcom,qmi-tmd.h >>>> @@ -0,0 +1,20 @@ >>>> +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */ >>>> +/* >>>> + * Qualcomm QMI TMD (Thermal Mitigation Device) cooling device indices >>>> + * >>>> + * These indices are used in device tree cooling-maps to reference >>>> + * specific TMD devices provided by remote processors via QMI. >>>> + * >>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. >>>> + */ >>>> +#ifndef _DT_BINDINGS_FIRMWARE_QCOM_QMI_TMD_H >>>> +#define _DT_BINDINGS_FIRMWARE_QCOM_QMI_TMD_H >>>> + >>>> +/* CDSP thermal mitigation device id */ >>>> +#define QCOM_CDSP_TMD_CDSP_SW 0 >>>> + >>>> +/* Modem thermal mitigation device id */ >>>> +#define QCOM_MODEM_TMD_PA 0 >>>> +#define QCOM_MODEM_TMD_MODEM 1 >>> >>> What about the dozens other ones that Dmitry's laptop reports?Ri >>> >> >> Thanks for the review, Konrad. >> >> We are only defining constants for the TMD devices that are actually used >> for thermal mitigation on the platforms supported by this series. > > Why are you using only those TMD devices? > >> More constants can be added as needed. > > Kodiak is one of the supported platforms. What would be the benefit of having more than thirteen cooling devices declared in the thermal framework and having only a couple of them mapped in a thermal zone ? I agree there are more TMDs but if they are unused for the moment, why do we need to add them ? Can we do that incrementally ? > Running the same tool produces: > > TMD service: instance=0x00 (modem) node=0 port=20 > 29 mitigation device(s): > [ 0] pa max_mitigation_level=3 > [ 1] pa_fr1 max_mitigation_level=3 > [ 2] modem max_mitigation_level=3 > [ 3] cpuv_restriction_cold max_mitigation_level=1 > [ 4] modem_current max_mitigation_level=3 > [ 5] vbatt_low max_mitigation_level=3 > [ 6] charge_state max_mitigation_level=3 > [ 7] modem_skin max_mitigation_level=3 > [ 8] modem_bw max_mitigation_level=5 > [ 9] mmw0 max_mitigation_level=3 > [10] mmw1 max_mitigation_level=3 > [11] mmw2 max_mitigation_level=3 > [12] mmw3 max_mitigation_level=3 > [13] mmw_skin0 max_mitigation_level=3 > [14] mmw_skin1 max_mitigation_level=3 > [15] mmw_skin2 max_mitigation_level=3 > [16] mmw_skin3 max_mitigation_level=3 > [17] mmw_skin0_dsc max_mitigation_level=15 > [18] mmw_skin1_dsc max_mitigation_level=15 > [19] mmw_skin2_dsc max_mitigation_level=15 > [20] mmw_skin3_dsc max_mitigation_level=15 > [21] wlan max_mitigation_level=4 > [22] wlan_bw max_mitigation_level=1 > [23] modem_skin_lte_dsc max_mitigation_level=255 > [24] modem_skin_nr_dsc max_mitigation_level=255 > [25] pa_dsc max_mitigation_level=255 > [26] pa_fr1_dsc max_mitigation_level=255 > [27] modem_bw_backoff max_mitigation_level=255 > [28] cpr_cold max_mitigation_level=3 > > TMD service: instance=0x01 (adsp) node=5 port=8 > 1 mitigation device(s): > [ 0] cpuv_restriction_cold max_mitigation_level=1 > > TMD service: instance=0x43 (cdsp) node=10 port=9 > 3 mitigation device(s): > [ 0] cpuv_restriction_cold max_mitigation_level=1 > [ 1] cdsp_hw max_mitigation_level=1 > [ 2] cdsp_sw max_mitigation_level=7 > > >> >>> https://lore.kernel.org/linux-arm-msm/4gs664zboaqgpok33x7bgorfmhh3f2fahjkt4jjl6fbzpwixnm@hxzz2xeogd4k/ >>> >>> Konrad >> >