From nobody Sat Jul 25 01:40:45 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9213140926A for ; Tue, 21 Jul 2026 06:29:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615369; cv=none; b=bxRYkkpjfdBne6jskGAbDDPerbzCHGY9e6figSDg69FLYh/mhKURf4it+swpInvVSfbBfFYytqeLOScXa/p880YL7vJ5+tfPeJlUvq//XrZJM2P8u/rQNSfdqdpRD+78N+PadmpBHHyT3cF0U3LQ8x+vQE6vKxH0HJetDQhA+wg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615369; c=relaxed/simple; bh=ZNmmhz8d+ikVqmiuGAtmzNkjyU7gAGD5sD7LIuQiwdA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Qu874AR1ugzfQKqT0D31Yxl3QuxgLN4hNoc5ZbJM4G1ec6jYPwPhozEr7aJJFPxQrwpT+nKnLfOp2HdbuxR3bqyAAvSormKqKZ+X4HgNhYahZIkcj/fG0dRLNjLJoi4jk7KsMZQLcIGTvJ1EsxHQQAo/g+BB8bdmGa00R3bxzXw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=F34KMcM2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TWCIu35e; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="F34KMcM2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TWCIu35e" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L2T5og092220 for ; Tue, 21 Jul 2026 06:29:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= o+LVABKIG2BuxSt+UJCwEcPXThG7BQ1oO2/vhndDIjc=; b=F34KMcM2PjCEuB66 dnKP67vQlxk+BTF1GnhKxnXaYVng2ageb+I6G7qoQ43txoeDUl2xA5+77qtIzNC2 fBedlx57FBy5lRtZzI10TnM8YCTtNFzKSexEIe4NYzE3rDQYn0n1xbs4NpGIbTNx Yv5yEfWaL8UnNyR1t/HNtc2dO8nu/ZaO235B3it+hcq0G3aiuR3p3dIaAZcsePHI UzfCu4qJvL1xd4PGwtLkuARKOWOzakXT/wAsw+uZEa0DURayfboUxjZkfox/KZ8t cbKEyxP6XDfxhh5kGLrV1nsrWy5Vv2elDR1xQ1mfyVNgrF3HoZECkZwUgLsm2rEx bnnnow== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fj01a8v04-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:29:26 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cacd6d37edso148777505ad.0 for ; Mon, 20 Jul 2026 23:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615366; x=1785220166; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=o+LVABKIG2BuxSt+UJCwEcPXThG7BQ1oO2/vhndDIjc=; b=TWCIu35egUcr/2xlfsSN6/6Gn19HgjXiKc/Rx7/FmDW4vgeuEXSoHf3+LOkyajD4j/ 7cu8FsUcUqGdQReRsOHBkNZcDwvlgWXnsu8Qi3PCZo/BDdd58zr0mIAC0wG5k77h+V9F SU3rrWhxAUOYaw3TyxjKqLd1UP46VIj17zga1gU1+DTtBkWEQY05FSPyFm52irb+yvDq qdE7eyEPY4rBB5+b/xjFiGkRyPY7r6/7nvUmoV/kMBdNGt1tdM2M5qD7Im06ogpQAqIU wp6QS2GhxsYxMScv/sGEMTguZNVdCi6CRjMnvSPvhBOpUgxLcKPIgieo6+EGpxAh8hee vI1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615366; x=1785220166; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=o+LVABKIG2BuxSt+UJCwEcPXThG7BQ1oO2/vhndDIjc=; b=HXRzrBzzjQAK4RsJeQ9MdOnWn35A1lso250/ZqoLnhfDJKL3h9t1RInwhA4TFISIDR GsUBOjfcjITO73pmauJoHmSOIgPElyOsO8puJb1EmWraTg0/plm2nm16HbytCEwDWDV6 GCcBHA6JmFtECOkIMlo6Uv5PMtPnSTUyoS7OCyXc+4A6rvtU3nutzGHHq8TlOYVu63Wt y0AQYDLzMXcoxz1CjqpoJ31PrFAflEk5gyedtRihZGsa2kxoVeP0P+sUW2W2oY0m0RGM 2tr7YVbVMt6M83HCZcwluEbRBWPH4O7x4dDKOkbDEVIt6C9BM6ViJaG8LzEGNa5+wV3b 8wGQ== X-Forwarded-Encrypted: i=1; AHgh+Ro9hazD8O3hKYZwkIMu7SQYfGixXmKiKLKNvu6pm+HFG+e3bk1uF05prktoGQuYkVPfjA2jTym8yAVxTcQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8elKwl3Mw8d1PvjJ+guDT/J9PVr8EHGPvKEBWSlCuYrggRkKU qjeFY7AUMRFJK7jtYpu04aiBcQoCoPnjqSEuZGmP6BLrysKM6M6coM3biZ/BAABXxF895uLkVk9 XjYROyc9Z27Nt035CDB8dzhBMQgvnBAcK+uhvwS+uReOss+wb42UK5LdjXjHeHxE1OdM= X-Gm-Gg: AR+sD12rDnk3TgOBVL068s9Zx7WZEqw8I+/GVxYR7QIrpfX4q4xHNmPqkrU0e1kjUhd yo705pnQCaTRhbnNWhJCJOyhbpEFUH0pxDifNc1bYffPAEoe88vI8ozmdiqolhDlsrspk1iehl5 yLuqmrnHvKlTJVASYh76Dz9FQ8ScO8cX5+IgV3BOdjZks6rNIjOS/aPORDf7J53v4PRrEtTzpot 8FM5hi9pTf0bUxHElY+Ff05kgBPaU/Qmtg1Y5Zg5yOBvdlIM2O0kBBW9dZ4xHrrKG9U/PBzgyAH OpQGbNKqBnOaaKIBv61as1Uub1vEh4B5WbgK8DcIyLJMqZLey/jXNGRSwA10IteSWkrKfwfLN8b vz9zsptiq8GV4+aT1FSmSvdyFIM0F/w== X-Received: by 2002:a17:902:fdae:b0:2ca:ecf6:910e with SMTP id d9443c01a7336-2cf3466a93fmr191394195ad.0.1784615365956; Mon, 20 Jul 2026 23:29:25 -0700 (PDT) X-Received: by 2002:a17:902:fdae:b0:2ca:ecf6:910e with SMTP id d9443c01a7336-2cf3466a93fmr191393995ad.0.1784615365482; Mon, 20 Jul 2026 23:29:25 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.29.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:29:25 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:58:58 +0530 Subject: [PATCH v5 1/9] dt-bindings: remoteproc: qcom,pas: add #cooling-cells property Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-1-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=3323; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=ZNmmhz8d+ikVqmiuGAtmzNkjyU7gAGD5sD7LIuQiwdA=; b=+CU+a3eT8Cbuga7goWNwt6YhSmtRDWGSDn4o/N/BDvZsXEJfU4IrriNbtpH5ZEboKxHpmPwDz 7XgS+tmBiwpAnMvZs6B83PCNHy56kQbUzvEQqmIZiZE4ZNjMe0LOU+S X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Authority-Analysis: v=2.4 cv=BL6DalQG c=1 sm=1 tr=0 ts=6a5f11c6 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=l7oHOeSGPlQ5jhq5CMoA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX+mRnnCIqqPHZ bhQ4b8quNuwrtyt8iqpA1NIgYLr9QzRbRUJstnST35lNTMRtppFPhVl9hbUjCbQQxUeBERSdvtT PKHSx4d6WQSrzUD+oZklUlDWOymjLcwi1PoIBU+96vXq/lDvKR0nZOgmtlOwK+Yk8ecq0dOHD2p XVDE602gyaugt7SMV/AOvYNW6h437GT4DFOon0xFqulryH0vwOWHfxpQeYNXrtv0dFQWdz6Cf1/ mTT0Y8JXhQheQefeGnI43jMQ5xTgL7J0HjfiNAhAH4OlJUy1WmkPGUT/wupqY1i+D7DTD+d1Mxi WOh7L68ZnKOPwlF+IA6xtl24oNmKyIw8k6/EtAyIrPu7zekvrDONrA2Chw2Dt5aw1Y68JupFFhl b9Mon+dUiNRyhZVQzUz0tXwvW5Red+gjActK7OkisLuDF+z2bluEAyROya/UJWRud6lRyfO5XmL +MJMKdtZdm5OYZ6CirA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX4zQfZ5e/XFBN DCUaEmCR0XQ7TdkLL54/JTJBxEvDoH77JCL+tVRdngMhYBMICVVcACmVDhnr/876ByvHWRq9cCV XILgFE2wC5GHjnkZtI4WrL1+UfrxLjY= X-Proofpoint-ORIG-GUID: Z3w8B-PLyrIyg5dcPElzJFRBc_aKrX35 X-Proofpoint-GUID: Z3w8B-PLyrIyg5dcPElzJFRBc_aKrX35 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 malwarescore=0 suspectscore=0 adultscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 Document the optional #cooling-cells property for Qualcomm PAS remoteproc nodes so they can be used as thermal cooling devices via the QMI Thermal Mitigation Device (TMD) interface. Qualcomm remote processors expose TMD endpoints that support thermal throttling through firmware. The cooling-device specifier uses 3 cells: <&phandle device_id min_state max_state> where device_id selects the TMD endpoint (for example PA, modem, or CDSP software mitigation), with constants defined in: include/dt-bindings/thermal/qcom,qmi-tmd.h Example usage in a thermal zone: cooling-maps { map0 { trip =3D <&cpu_alert>; cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW 0 THERMAL_NO_LIMIT>; }; }; Signed-off-by: Gaurav Kohli --- .../bindings/remoteproc/qcom,pas-common.yaml | 9 +++++++++ MAINTAINERS | 1 + include/dt-bindings/thermal/qcom,qmi-tmd.h | 20 ++++++++++++++++= ++++ 3 files changed, 30 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.y= aml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml index 11faf655f530..39e79a1c1079 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml @@ -77,6 +77,15 @@ properties: channels and devices related to the ADSP. unevaluatedProperties: false =20 + '#cooling-cells': + description: | + Cooling device with three cells: + Cell 0: Cooling device id as defined in + include/dt-bindings/thermal/qcom,qmi-tmd.h + Cell 1: Minimum cooling state + Cell 2: Maximum cooling state + const: 3 + glink-edge: $ref: /schemas/remoteproc/qcom,glink-edge.yaml# description: diff --git a/MAINTAINERS b/MAINTAINERS index dcffe9fc54f6..2d4d19201aec 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3423,6 +3423,7 @@ F: drivers/watchdog/gunyah_wdt.c F: include/dt-bindings/arm/qcom,ids.h F: include/dt-bindings/firmware/qcom,scm.h F: include/dt-bindings/soc/qcom* +F: include/dt-bindings/thermal/qcom,qmi-tmd.h F: include/linux/firmware/qcom F: include/linux/soc/qcom/ F: include/soc/qcom/ diff --git a/include/dt-bindings/thermal/qcom,qmi-tmd.h b/include/dt-bindin= gs/thermal/qcom,qmi-tmd.h new file mode 100644 index 000000000000..a07a515905e7 --- /dev/null +++ b/include/dt-bindings/thermal/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_THERMAL_QCOM_QMI_TMD_H +#define _DT_BINDINGS_THERMAL_QCOM_QMI_TMD_H + +/* CDSP thermal mitigation device id */ +#define QCOM_TMD_CDSP_SW 0 + +/* Modem thermal mitigation device id */ +#define QCOM_TMD_PA 0 +#define QCOM_TMD_MODEM 1 + +#endif /* _DT_BINDINGS_THERMAL_QCOM_QMI_TMD_H */ --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 35A542AD2E for ; Tue, 21 Jul 2026 06:29:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615377; cv=none; b=RFb2+jitCqQm49GTwx4V6RZcJ1spjXomPXtvhRDm9g+aLtACO/mWRu8PK9usuY6Iq//ziHBD11vidCYn5lX2YJd6qeXMHR/7Q48DhZxMekQy5SVfpsRcDOWRCWMpFzJSsbr8NV/3rVG/rHLAK+VcpeSuyaHTbd1xKP7YoXDLpTQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615377; c=relaxed/simple; bh=8WqTyhKZUXtslaLIwme7BjeuW6dH3K+B4hCsVe3W6Qw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PPZOq21Qhe1Q5gSWZ8frKjwHW3iObNPJsEsekgjG8TkJOg+zbXq/yTwFG1+7kCGc7Y5cTvcbFk39vyqfSEPKhTDrN4D/uVObzhcIOtttvu8ncOfONM0wGkcvj2JMtPxEIDKgw/NGodRMFmjVcEKRj1Otzbvp/fR32KC0hhvQiWA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=djmnNESy; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=d77tlvZ3; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="djmnNESy"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="d77tlvZ3" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L6IfsI934742 for ; Tue, 21 Jul 2026 06:29:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= IrnbPv1bMltwhfBTkI8uYU9QA6lVOPA+dqxro2lWoKA=; b=djmnNESyE630Ym8j XpaOnZ5dv16JK5j2I4L49p3I+T+A+7KArH4NO+uWz/6oabhAApRLocsGvlXLAClJ DB1dSZPo3FDDERgpwcDP2TU7MVRJM5RU5jLMbZscWyO3DE2b9j4X1TMi3RJCcu5S VMsmjvTUwepi2wCoD9lths0Y/5jJnj5FgeDKH3g0wF8NXwEqB1zz9ZFEKYUuTrfK 29ii2RThjs+uRZExZcy/t09JYXm8VdV4Zty16OzdieT53/Gm3mKUQ9Ts+tqgz9zw kNPpfcXAcrYls5LdCeemYdVekhxKSU9pJQzWilIXTh6ISdGv/YmWwEybUueNwMf5 +TGn+w== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhqv5tpsy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:29:34 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ce7dfd33ffso136158075ad.0 for ; Mon, 20 Jul 2026 23:29:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615374; x=1785220174; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=IrnbPv1bMltwhfBTkI8uYU9QA6lVOPA+dqxro2lWoKA=; b=d77tlvZ3PeQnG+npDExz+pzoltdeUizn6JucXeiLltrpZq29JFFMG2qSYaMfZPDfle 4RAa8yqJlyyiCyVjeYcJWLiJxTlrKth5vY+yphHaF9x4FF3vVbdRHg6mM7oEG4mKR+JX s85V38IHDmEVx2h62yNWW3YxJPBf4dwL0lS9qlErnO09aEX5+dVkrydZPKAwErM3vkI6 DThzGKdot1lpkjNkRoJrV3VSvhrTUtUSWyw1wu4t5RTVKYS88dQoUKreLGD/LQTuyNGi aGIIdP0LsRLl6B2kQPYUs0fPPUpOTRGXoXe9xTzbZVTlsik9TLA2DUETJ7EzB8NUq99n Sx4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615374; x=1785220174; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=IrnbPv1bMltwhfBTkI8uYU9QA6lVOPA+dqxro2lWoKA=; b=J7urW+TTopYFhfqwYcsl3duAKje2PNiOLObLY7rNS7r5RkzMk6fskmeRTioWV3x1dm WvLV9BAfZl36LK8/Hiz6FlwCyTzY3j+jCb0sdwVFKO5JC9eHwGGh0vkt4ECU3hP8lcKV V3IF/FftTzd8ix19dSAE1N0IWo8hrJvVi4HgmjqMJ2rjiIDFYE04vB+zR5ogajXa+6MX Qqz1qVoWKEzeIdiSBvVFAyCuGfWa90gmfAYnrSbYhVcyFb1dvvPB1DgDsWspjFJ6wQp3 xwyW3rFCCvCnFmjim1gOBlX3gbU4cT/pKb0zjy/2E5Vr1BfyDlX22nWWhixQ+6cwXdyt bzPg== X-Forwarded-Encrypted: i=1; AHgh+RruwFK0HmXt0YLasPTtXioLiSg/DyghFYxbyVMnH6w86WItz63QRFNFDv9ZC8ARiSIaM/mNwpNwScjVB04=@vger.kernel.org X-Gm-Message-State: AOJu0YwvemhpdyKR6exF3mJlCgMRNvlIWfsQmVhxOt1jQXgP8pnxPpqj JiTThPny7G2706gIyTqvyJit718BM+fhhwPAHuB7KnUtmwqRalNtYmywEZWQNRx1AKcBzeVhBZb SXNQdB13Yd8x475MDcU9n0i/G9gxaIkJoguK2E3OUYU+9s/nCUvzgHa1a/GI1yibeTrZjjmpDqJ c= X-Gm-Gg: AR+sD10d919tV5jMnxHFfXFMoSmiSeX/a7E35g9oqPtYAOaQNR1eF+nE3aGUu+4VxHX RylugRk7wkdIlNZSkZ8YR/0io34KtC5UF0oQQ/UPYxkQI/ZNFdXK0EipP1cw/xRY73MyJOYT7/Y kT69M7Id3DgKblP0oAZvhEBYvEnYBdiGE2Q48fZMcSrTJ8sq8Q000kSG1dWZ96j2+bzBiDahMha 9YUBgSZpmLX4egZMFNzIZb5kUsU9ddNdqiHxsM9fawdRB/JpGED+lB2MrPSGna2jb0TMl34lgDU IMuQp5y3IU4Mn1pZ1brEjVDzgOUnrHSl7yST9vkEUWo9deFVDimSQWqOLO+O2pyQSxYBYKi/5VG Ad8xlpKpNgX9fN+JUxec1RbxmYba1Xw== X-Received: by 2002:a17:902:f786:b0:2ca:caa5:9c04 with SMTP id d9443c01a7336-2cf3495ffccmr196324925ad.23.1784615373559; Mon, 20 Jul 2026 23:29:33 -0700 (PDT) X-Received: by 2002:a17:902:f786:b0:2ca:caa5:9c04 with SMTP id d9443c01a7336-2cf3495ffccmr196324515ad.23.1784615372941; Mon, 20 Jul 2026 23:29:32 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.29.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:29:32 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:58:59 +0530 Subject: [PATCH v5 2/9] soc: qcom: Add QMI TMD support for remote thermal mitigation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-2-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com, Casey Connolly X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=20506; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=81b6aU7ZDojNIyCSveDTNhcqzEfrCiolROjz5OxyVHk=; b=XpnlL9ERUG/j0xki0SgJ56uogUCbz7nMl8lij35PRCqpPjQ8qhPwv0m3eQxq1HipK1DCF5YWU wIunIh+3b3lAr3Ny2UvMO3vfIOLgFn7iFwWtatpvaSH6d21GkiXmPHE X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-GUID: 1jMk0PMHoaBRte_p-kFJPI55wsWooDHE X-Proofpoint-ORIG-GUID: 1jMk0PMHoaBRte_p-kFJPI55wsWooDHE X-Authority-Analysis: v=2.4 cv=e+U2j6p/ c=1 sm=1 tr=0 ts=6a5f11ce cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=CztZBwTvgdPHhzGUrqoA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX94mZA6EaUJ6r av2u5CWQlkSYvbUxht/JmC1c5PbgDEdQe08B0cqtPHdS6b6FjHvpKERMTNa6rfak+GBGLZ4xmpU OuhJln2T/d/4zm/seSe2OaKWjbqDWJE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX2mEfbdXbuh8+ m5COQixhYXCkoJRhKnEJTLnm7fLOfmFYzkR//TC6gelFEacke4rq+sruAbfOgJ1CZ5NPSXGVOBX 1lx96doRes67gS5RIABTv4ZKNBlbQTmU/HRL4YSRa0n/hq/1oJO1nLcJWmLu8xx32Dk+S8tU/LS o6fpy50JvZpuIUcf5wTLpc/3LlyZxjxPtMOUT4+oOGGUMUwEb0rL2k/C1aZbUFSX5NLBUN8klxU xNnPeEnLrtyWLbcxUmYZ8c9SE5Uy5SnIovQkE6GTZJFLwTay8KU0nNqVJoAKu/RIT4kRF3YU/Ne +WWgtQrBP7lqS2a/kDgO0nOD2BaRhiQb3WmhcUWqeQYzsNoprfeNkUTT9mfGldR11tta4WlA/+4 Ei3afsSP+lKrKlaMfBUCEAtnUScXy5LrJEYZ0BVPDLlHsowGx9ZFu8xcCymjG9t3HtaqGUK95pl plbtw6ktYr+O77IlfOQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 From: Casey Connolly Add support for Qualcomm Messaging Interface (QMI) based Thermal Mitigation Device (TMD) cooling devices provided by remote subsystems. On Qualcomm platforms where remote processors expose mitigation controls through the TMD QMI service, client drivers need support to discover the service, register cooling devices for available mitigation endpoints, and forward cooling state updates to remote subsystems. Signed-off-by: Casey Connolly Co-developed-by: Daniel Lezcano Signed-off-by: Daniel Lezcano Co-developed-by: Gaurav Kohli Signed-off-by: Gaurav Kohli --- MAINTAINERS | 7 + drivers/soc/qcom/Kconfig | 11 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/qmi_tmd.c | 595 +++++++++++++++++++++++++++++++++++= ++++ include/linux/soc/qcom/qmi.h | 1 + include/linux/soc/qcom/qmi_tmd.h | 22 ++ 6 files changed, 637 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 2d4d19201aec..7ed0eb16962c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22389,6 +22389,13 @@ F: Documentation/devicetree/bindings/net/qcom,ipq9= 574-ppe.yaml F: Documentation/networking/device_drivers/ethernet/qualcomm/ppe/ppe.rst F: drivers/net/ethernet/qualcomm/ppe/ =20 +QUALCOMM QMI (REMOTEPROC THERMAL MITIGATION) TMD +M: Gaurav Kohli +L: linux-arm-msm@vger.kernel.org +L: linux-pm@vger.kernel.org +S: Maintained +F: drivers/soc/qcom/qmi_tmd.c + QUALCOMM QSEECOM DRIVER M: Maximilian Luz L: linux-arm-msm@vger.kernel.org diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index fd4d4ecd2df0..5c38d598e486 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -319,6 +319,17 @@ config QCOM_QMI_HELPERS tristate depends on NET =20 +config QCOM_QMI_TMD + bool "Qualcomm remote subsystem TMD" if COMPILE_TEST + depends on ARCH_QCOM && NET + select QRTR + select QCOM_QMI_HELPERS + help + This enables Qualcomm Messaging Interface (QMI) based Thermal Mitigation + Device (TMD) support for Qualcomm remote subsystems. It manages + TMD messaging and handles QMI communication with remote processors + to exchange mitigation state and apply thermal mitigation requests. + config QCOM_UBWC_CONFIG tristate help diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index b7f1d2a57367..4544e61c74e7 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_QCOM_PMIC_GLINK) +=3D pmic_glink.o obj-$(CONFIG_QCOM_PMIC_GLINK) +=3D pmic_glink_altmode.o obj-$(CONFIG_QCOM_PMIC_PDCHARGER_ULOG) +=3D pmic_pdcharger_ulog.o CFLAGS_pmic_pdcharger_ulog.o :=3D -I$(src) +obj-$(CONFIG_QCOM_QMI_TMD) +=3D qmi_tmd.o obj-$(CONFIG_QCOM_QMI_HELPERS) +=3D qmi_helpers.o qmi_helpers-y +=3D qmi_encdec.o qmi_interface.o obj-$(CONFIG_QCOM_RAMP_CTRL) +=3D ramp_controller.o diff --git a/drivers/soc/qcom/qmi_tmd.c b/drivers/soc/qcom/qmi_tmd.c new file mode 100644 index 000000000000..b31046241af8 --- /dev/null +++ b/drivers/soc/qcom/qmi_tmd.c @@ -0,0 +1,595 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2025, Linaro Limited + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * QMI Thermal Mitigation Device (TMD). + * Provides cooling device support for remote subsystems + * running the TMD service via QMI. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define QMI_TMD_SERVICE_VERS_V01 0x01 + +#define QMI_TMD_SET_LEVEL_REQ 0x0021 +#define QMI_TMD_GET_DEV_LIST_REQ 0x0020 + +#define QMI_TMD_DEV_ID_LEN_MAX 32 +#define QMI_TMD_DEV_LIST_MAX 32 +#define QMI_TMD_RESP_TIMEOUT msecs_to_jiffies(100) +#define TMD_GET_LEVEL_REQ_MAX_LEN 36 +#define TMD_SET_LEVEL_REQ_MAX_LEN 40 + +#define TMD_GET_DEV_LIST_REQ_MAX_LEN 0 +#define TMD_GET_DEV_LIST_RESP_MAX_LEN 1099 + +struct tmd_dev_id { + char mitigation_dev_id[QMI_TMD_DEV_ID_LEN_MAX + 1]; +}; + +static const struct qmi_elem_info tmd_dev_id_ei[] =3D { + { + .data_type =3D QMI_STRING, + .elem_len =3D QMI_TMD_DEV_ID_LEN_MAX + 1, + .elem_size =3D sizeof(char), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0, + .offset =3D offsetof(struct tmd_dev_id, + mitigation_dev_id), + }, + { + .data_type =3D QMI_EOTI, + .array_type =3D NO_ARRAY, + .tlv_type =3D QMI_COMMON_TLV_TYPE, + }, +}; + +struct tmd_dev_list { + struct tmd_dev_id mitigation_dev_id; + u8 max_mitigation_level; +}; + +static const struct qmi_elem_info tmd_dev_list_ei[] =3D { + { + .data_type =3D QMI_STRUCT, + .elem_len =3D 1, + .elem_size =3D sizeof(struct tmd_dev_id), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0, + .offset =3D offsetof(struct tmd_dev_list, + mitigation_dev_id), + .ei_array =3D tmd_dev_id_ei, + }, + { + .data_type =3D QMI_UNSIGNED_1_BYTE, + .elem_len =3D 1, + .elem_size =3D sizeof(uint8_t), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0, + .offset =3D offsetof(struct tmd_dev_list, + max_mitigation_level), + }, + { + .data_type =3D QMI_EOTI, + .array_type =3D NO_ARRAY, + .tlv_type =3D QMI_COMMON_TLV_TYPE, + }, +}; + +struct tmd_get_dev_list_req { + char placeholder; +}; + +static const struct qmi_elem_info tmd_get_dev_list_req_ei[] =3D { + { + .data_type =3D QMI_EOTI, + .array_type =3D NO_ARRAY, + .tlv_type =3D QMI_COMMON_TLV_TYPE, + }, +}; + +struct tmd_get_dev_list_resp { + struct qmi_response_type_v01 resp; + u8 mitigation_device_list_valid; + u8 mitigation_device_list_len; + struct tmd_dev_list + mitigation_device_list[QMI_TMD_DEV_LIST_MAX]; +}; + +static const struct qmi_elem_info tmd_get_dev_list_resp_ei[] =3D { + { + .data_type =3D QMI_STRUCT, + .elem_len =3D 1, + .elem_size =3D sizeof(struct qmi_response_type_v01), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0x02, + .offset =3D offsetof(struct tmd_get_dev_list_resp, + resp), + .ei_array =3D qmi_response_type_v01_ei, + }, + { + .data_type =3D QMI_OPT_FLAG, + .elem_len =3D 1, + .elem_size =3D sizeof(uint8_t), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0x10, + .offset =3D offsetof(struct tmd_get_dev_list_resp, + mitigation_device_list_valid), + }, + { + .data_type =3D QMI_DATA_LEN, + .elem_len =3D 1, + .elem_size =3D sizeof(uint8_t), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0x10, + .offset =3D offsetof(struct tmd_get_dev_list_resp, + mitigation_device_list_len), + }, + { + .data_type =3D QMI_STRUCT, + .elem_len =3D QMI_TMD_DEV_LIST_MAX, + .elem_size =3D sizeof(struct tmd_dev_list), + .array_type =3D VAR_LEN_ARRAY, + .tlv_type =3D 0x10, + .offset =3D offsetof(struct tmd_get_dev_list_resp, + mitigation_device_list), + .ei_array =3D tmd_dev_list_ei, + }, + { + .data_type =3D QMI_EOTI, + .array_type =3D NO_ARRAY, + .tlv_type =3D QMI_COMMON_TLV_TYPE, + }, +}; + +struct tmd_set_level_req { + struct tmd_dev_id mitigation_dev_id; + u8 mitigation_level; +}; + +static const struct qmi_elem_info tmd_set_level_req_ei[] =3D { + { + .data_type =3D QMI_STRUCT, + .elem_len =3D 1, + .elem_size =3D sizeof(struct tmd_dev_id), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0x01, + .offset =3D offsetof(struct tmd_set_level_req, + mitigation_dev_id), + .ei_array =3D tmd_dev_id_ei, + }, + { + .data_type =3D QMI_UNSIGNED_1_BYTE, + .elem_len =3D 1, + .elem_size =3D sizeof(uint8_t), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0x02, + .offset =3D offsetof(struct tmd_set_level_req, + mitigation_level), + }, + { + .data_type =3D QMI_EOTI, + .array_type =3D NO_ARRAY, + .tlv_type =3D QMI_COMMON_TLV_TYPE, + }, +}; + +struct tmd_set_level_resp { + struct qmi_response_type_v01 resp; +}; + +static const struct qmi_elem_info tmd_set_level_resp_ei[] =3D { + { + .data_type =3D QMI_STRUCT, + .elem_len =3D 1, + .elem_size =3D sizeof(struct qmi_response_type_v01), + .array_type =3D NO_ARRAY, + .tlv_type =3D 0x02, + .offset =3D offsetof(struct tmd_set_level_resp, resp), + .ei_array =3D qmi_response_type_v01_ei, + }, + { + .data_type =3D QMI_EOTI, + .array_type =3D NO_ARRAY, + .tlv_type =3D QMI_COMMON_TLV_TYPE, + }, +}; + +/** + * struct qmi_tmd - A TMD cooling device + * @name: The name of this tmd shared by the remote subsystem + * @cdev: Thermal cooling device handle + * @cur_state: The current mitigation state + * @max_state: The maximum state + * @qmi_tmd_cli: Parent QMI TMD client + */ +struct qmi_tmd { + const char *name; + struct thermal_cooling_device *cdev; + unsigned int cur_state; + unsigned int max_state; + struct qmi_tmd_client *qmi_tmd_cli; +}; + +/** + * struct qmi_tmd_client - QMI TMD client state + * @dev: Device associated with this instance + * @handle: QMI connection handle + * @mutex: Serializes QMI request/response sequences (qmi_txn_init, + * qmi_send_request) during DSP subsystem restart and + * protects @connection_active and @exiting + * @connection_active: Whether or not we're connected to the QMI TMD servi= ce + * @exiting: Whether or not teardown has started + * @svc_arrive_work: Work item for initialising when the TMD service starts + * @num_tmds: Number of tmds described in the device tree + * @tmds: An array of tmd structures + */ +struct qmi_tmd_client { + struct device *dev; + struct qmi_handle handle; + /* protects QMI transactions, connection_active and exiting */ + struct mutex mutex; + bool connection_active; + bool exiting; + struct work_struct svc_arrive_work; + int num_tmds; + struct qmi_tmd tmds[] __counted_by(num_tmds); +}; + +/* Notify the remote subsystem of the requested cooling state */ +static int qmi_tmd_send_state_request(struct qmi_tmd *tmd, int state) +{ + struct tmd_set_level_resp resp =3D { 0 }; + struct tmd_set_level_req req =3D { 0 }; + struct qmi_tmd_client *qmi_tmd_cli =3D tmd->qmi_tmd_cli; + struct qmi_txn txn; + int ret =3D 0; + + guard(mutex)(&qmi_tmd_cli->mutex); + + if (!qmi_tmd_cli->connection_active) + return 0; + + strscpy(req.mitigation_dev_id.mitigation_dev_id, tmd->name, + QMI_TMD_DEV_ID_LEN_MAX + 1); + req.mitigation_level =3D state; + + ret =3D qmi_txn_init(&qmi_tmd_cli->handle, &txn, + tmd_set_level_resp_ei, &resp); + if (ret < 0) { + dev_err(qmi_tmd_cli->dev, "qmi set state %d txn init failed for %s ret %= d\n", + state, tmd->name, ret); + return ret; + } + + ret =3D qmi_send_request(&qmi_tmd_cli->handle, NULL, &txn, + QMI_TMD_SET_LEVEL_REQ, + TMD_SET_LEVEL_REQ_MAX_LEN, + tmd_set_level_req_ei, &req); + if (ret < 0) { + dev_err(qmi_tmd_cli->dev, "qmi set state %d txn send failed for %s ret %= d\n", + state, tmd->name, ret); + qmi_txn_cancel(&txn); + return ret; + } + + ret =3D qmi_txn_wait(&txn, QMI_TMD_RESP_TIMEOUT); + if (ret < 0) { + dev_err(qmi_tmd_cli->dev, "qmi set state %d txn wait failed for %s ret %= d\n", + state, tmd->name, ret); + return ret; + } + + if (resp.resp.result !=3D QMI_RESULT_SUCCESS_V01) { + dev_err(qmi_tmd_cli->dev, + "qmi set state %d failed for %s result %#x error %#x\n", + state, tmd->name, + resp.resp.result, resp.resp.error); + return -EREMOTEIO; + } + + dev_dbg(qmi_tmd_cli->dev, "Requested state %d/%d for %s\n", state, + tmd->max_state, tmd->name); + + return 0; +} + +static int qmi_tmd_get_max_state(struct thermal_cooling_device *cdev, + unsigned long *state) +{ + struct qmi_tmd *tmd =3D cdev->devdata; + + *state =3D tmd->max_state; + + return 0; +} + +static int qmi_tmd_get_cur_state(struct thermal_cooling_device *cdev, + unsigned long *state) +{ + struct qmi_tmd *tmd =3D cdev->devdata; + + /* cur_state is protected by thermal core's cdev->lock */ + *state =3D tmd->cur_state; + + return 0; +} + +static int qmi_tmd_set_cur_state(struct thermal_cooling_device *cdev, + unsigned long state) +{ + struct qmi_tmd *tmd =3D cdev->devdata; + int ret; + + if (state > tmd->max_state) + return -EINVAL; + + /* cur_state is protected by thermal core's cdev->lock */ + if (tmd->cur_state =3D=3D state) + return 0; + + ret =3D qmi_tmd_send_state_request(tmd, state); + if (!ret) + tmd->cur_state =3D state; + + return ret; +} + +static const struct thermal_cooling_device_ops qmi_tmd_cooling_ops =3D { + .get_max_state =3D qmi_tmd_get_max_state, + .get_cur_state =3D qmi_tmd_get_cur_state, + .set_cur_state =3D qmi_tmd_set_cur_state, +}; + +static int qmi_tmd_register(struct qmi_tmd_client *qmi_tmd_cli, + const char *label, u8 max_state) +{ + struct device *dev =3D qmi_tmd_cli->dev; + struct qmi_tmd *tmd; + int index; + + for (index =3D 0; index < qmi_tmd_cli->num_tmds; index++) { + tmd =3D &qmi_tmd_cli->tmds[index]; + + if (!strncasecmp(tmd->name, label, + QMI_TMD_DEV_ID_LEN_MAX + 1)) + goto found; + } + + dev_dbg(qmi_tmd_cli->dev, + "TMD '%s' available in firmware but not specified in DT\n", + label); + return 0; + +found: + tmd->max_state =3D max_state; + + /* + * If the cooling device already exists then the QMI service went away and + * came back. So just make sure the current cooling device state is + * reflected on the remote side and then return. + */ + if (tmd->cdev) + return qmi_tmd_send_state_request(tmd, tmd->cur_state); + + tmd->cdev =3D thermal_of_cooling_device_register(dev->of_node, index, + label, tmd, &qmi_tmd_cooling_ops); + if (IS_ERR(tmd->cdev)) { + int ret =3D PTR_ERR(tmd->cdev); + + tmd->cdev =3D NULL; + return ret; + } + + return 0; +} + +static void qmi_tmd_unregister(struct qmi_tmd_client *qmi_tmd_cli) +{ + struct qmi_tmd *tmd; + int index; + + for (index =3D 0; index < qmi_tmd_cli->num_tmds; index++) { + tmd =3D &qmi_tmd_cli->tmds[index]; + + if (!tmd->cdev) + continue; + + thermal_cooling_device_unregister(tmd->cdev); + tmd->cdev =3D NULL; + } +} + +static void qmi_tmd_svc_arrive(struct work_struct *work) +{ + struct qmi_tmd_client *qmi_tmd_cli =3D + container_of(work, struct qmi_tmd_client, svc_arrive_work); + + struct tmd_get_dev_list_req req =3D { 0 }; + struct tmd_get_dev_list_resp *resp __free(kfree) =3D NULL; + int ret, i; + struct qmi_txn txn; + + resp =3D kzalloc_obj(*resp, GFP_KERNEL); + if (!resp) { + ret =3D -ENOMEM; + goto out; + } + + scoped_guard(mutex, &qmi_tmd_cli->mutex) { + if (qmi_tmd_cli->exiting) + return; + + ret =3D qmi_txn_init(&qmi_tmd_cli->handle, &txn, + tmd_get_dev_list_resp_ei, resp); + if (ret < 0) + goto out; + + ret =3D qmi_send_request(&qmi_tmd_cli->handle, NULL, &txn, + QMI_TMD_GET_DEV_LIST_REQ, + TMD_GET_DEV_LIST_REQ_MAX_LEN, + tmd_get_dev_list_req_ei, &req); + if (ret < 0) { + qmi_txn_cancel(&txn); + goto out; + } + + ret =3D qmi_txn_wait(&txn, QMI_TMD_RESP_TIMEOUT); + if (ret < 0) + goto out; + + if (resp->resp.result !=3D QMI_RESULT_SUCCESS_V01) { + ret =3D -EPROTO; + goto out; + } + + qmi_tmd_cli->connection_active =3D true; + } + + for (i =3D 0; i < resp->mitigation_device_list_len; i++) { + struct tmd_dev_list *device =3D + &resp->mitigation_device_list[i]; + + ret =3D qmi_tmd_register(qmi_tmd_cli, + device->mitigation_dev_id.mitigation_dev_id, + device->max_mitigation_level); + if (ret) + break; + } + +out: + if (ret) + dev_err(qmi_tmd_cli->dev, "Failed to initialize TMD service: %d\n", ret); +} + +static void qmi_tmd_del_server(struct qmi_handle *qmi, struct qmi_service = *service) +{ + struct qmi_tmd_client *qmi_tmd_cli =3D + container_of(qmi, struct qmi_tmd_client, handle); + + scoped_guard(mutex, &qmi_tmd_cli->mutex) { + qmi_tmd_cli->connection_active =3D false; + } +} + +static int qmi_tmd_new_server(struct qmi_handle *qmi, struct qmi_service *= service) +{ + struct sockaddr_qrtr sq =3D { AF_QIPCRTR, service->node, service->port }; + struct qmi_tmd_client *qmi_tmd_cli; + int ret; + + qmi_tmd_cli =3D container_of(qmi, struct qmi_tmd_client, handle); + + scoped_guard(mutex, &qmi_tmd_cli->mutex) { + if (qmi_tmd_cli->exiting) + return 0; + + ret =3D kernel_connect(qmi->sock, (struct sockaddr_unsized *)&sq, + sizeof(sq), 0); + } + + if (ret < 0) { + dev_err(qmi_tmd_cli->dev, "QMI connect failed for node %u port %u: %d\n", + service->node, service->port, ret); + return ret; + } + + queue_work(system_highpri_wq, &qmi_tmd_cli->svc_arrive_work); + + return 0; +} + +static const struct qmi_ops qmi_tmd_ops =3D { + .new_server =3D qmi_tmd_new_server, + .del_server =3D qmi_tmd_del_server, +}; + +/** + * qmi_tmd_init() - Initialize QMI TMD instance + * @dev: Device pointer + * @instance_id: QMI service instance ID for the remote subsystem + * @tmd_names: Array of TMD names + * @num_tmds: Number of TMD names + * + * Context: Must be called from probe context. + * + * Return: Pointer to qmi_tmd_client on success, ERR_PTR on failure + */ +struct qmi_tmd_client *qmi_tmd_init(struct device *dev, + unsigned int instance_id, + const char * const *tmd_names, + int num_tmds) +{ + struct qmi_tmd_client *qmi_tmd_cli; + int ret, i; + + if (!dev || !tmd_names || num_tmds <=3D 0) + return ERR_PTR(-EINVAL); + + qmi_tmd_cli =3D devm_kzalloc(dev, struct_size(qmi_tmd_cli, tmds, num_tmds= ), GFP_KERNEL); + if (!qmi_tmd_cli) + return ERR_PTR(-ENOMEM); + + qmi_tmd_cli->dev =3D dev; + qmi_tmd_cli->num_tmds =3D num_tmds; + mutex_init(&qmi_tmd_cli->mutex); + INIT_WORK(&qmi_tmd_cli->svc_arrive_work, qmi_tmd_svc_arrive); + + for (i =3D 0; i < num_tmds; i++) { + qmi_tmd_cli->tmds[i].name =3D tmd_names[i]; + qmi_tmd_cli->tmds[i].qmi_tmd_cli =3D qmi_tmd_cli; + } + + ret =3D qmi_handle_init(&qmi_tmd_cli->handle, + TMD_GET_DEV_LIST_RESP_MAX_LEN, + &qmi_tmd_ops, NULL); + if (ret < 0) + return ERR_PTR(dev_err_probe(dev, ret, "QMI handle init failed\n")); + + ret =3D qmi_add_lookup(&qmi_tmd_cli->handle, QMI_SERVICE_ID_TMD, + QMI_TMD_SERVICE_VERS_V01, instance_id); + if (ret < 0) { + dev_err_probe(dev, ret, "QMI add lookup failed\n"); + goto err_release_handle; + } + + return qmi_tmd_cli; + +err_release_handle: + qmi_handle_release(&qmi_tmd_cli->handle); + + return ERR_PTR(ret); +} +EXPORT_SYMBOL_GPL(qmi_tmd_init); + +/** + * qmi_tmd_exit() - Deinitialize QMI TMD instance + * @qmi_tmd_cli: QMI TMD client to deinitialize + */ +void qmi_tmd_exit(struct qmi_tmd_client *qmi_tmd_cli) +{ + if (!qmi_tmd_cli) + return; + + scoped_guard(mutex, &qmi_tmd_cli->mutex) { + qmi_tmd_cli->exiting =3D true; + qmi_tmd_cli->connection_active =3D false; + } + + qmi_handle_release(&qmi_tmd_cli->handle); + cancel_work_sync(&qmi_tmd_cli->svc_arrive_work); + qmi_tmd_unregister(qmi_tmd_cli); +} +EXPORT_SYMBOL_GPL(qmi_tmd_exit); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Qualcomm QMI Thermal Mitigation support"); diff --git a/include/linux/soc/qcom/qmi.h b/include/linux/soc/qcom/qmi.h index b9dcb437a0be..683d27cee413 100644 --- a/include/linux/soc/qcom/qmi.h +++ b/include/linux/soc/qcom/qmi.h @@ -96,6 +96,7 @@ struct qmi_elem_info { * Enumerate the IDs of the QMI services */ #define QMI_SERVICE_ID_TEST 0x0f /* 15 */ +#define QMI_SERVICE_ID_TMD 0x18 /* 24 */ #define QMI_SERVICE_ID_SSCTL 0x2b /* 43 */ #define QMI_SERVICE_ID_IPA 0x31 /* 49 */ #define QMI_SERVICE_ID_SERVREG_LOC 0x40 /* 64 */ diff --git a/include/linux/soc/qcom/qmi_tmd.h b/include/linux/soc/qcom/qmi_= tmd.h new file mode 100644 index 000000000000..fca17a901215 --- /dev/null +++ b/include/linux/soc/qcom/qmi_tmd.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2025, Linaro Limited + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * QMI Thermal Mitigation Device (TMD) library header. + */ + +#ifndef __QMI_TMD_H__ +#define __QMI_TMD_H__ + +struct device; +struct qmi_tmd_client; + +struct qmi_tmd_client *qmi_tmd_init(struct device *dev, + unsigned int instance_id, + const char * const *tmd_names, + int num_tmds); + +void qmi_tmd_exit(struct qmi_tmd_client *tmd_cli); + +#endif /* __QMI_TMD_H__ */ --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AB2A40862F for ; Tue, 21 Jul 2026 06:29:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615384; cv=none; b=MHjqaOAxwGDHTRftjifQq9Vpts9WtG30mLfiodQEdJV62XaAWJPUiD+EAgqWvaSYKqdmNKN4D201f08Tc1LQ8qcmR+0o45xBHfMkVit4KJYDywIud54fCIddMrGCOUQmPjGQ+e532rG54Mt9mKNGWZhMm4byyNiDNdhljrjh+Bo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615384; c=relaxed/simple; bh=h1RranJv2jI2LM6kKtghCftRiHqPNe2hX70tj3R37IA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XrjnZqHX/pzsFc1BVCOuOmIzupGmUP4WwLhHszzQpsZQTpVuI9Gi6abYbwpDt6gdBml8ifDANXvZ+isMxZQ46yKXHcBBvhJ+HEDOBP2Zj9DsCnKkq52a+lMxjNUVnOEQ9IyrXtiKIij5DrtLUF4JsfZmjGF0Of7z1lJuOs0YPJw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=MPRQF3Cg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WDFbBRKc; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="MPRQF3Cg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WDFbBRKc" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L4SruI527381 for ; Tue, 21 Jul 2026 06:29:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= sUJU52E8gQzRrANsqemYRxfZIyv/3tHDVZxDRAiAzhc=; b=MPRQF3CgHgPfeTBK L3qVSTOV5TVpv2zu2jLnnrdgbwAHVI8DHSPe56gMvIjldRPtPp5refa6g2dhWUm5 aC36FS5NK36VR/vyqsZvqiR6IrvW6AUHlCxeXB+y0TgfV/QspRlg90l3eaTVcdPr yNeTFyR/ath3X7elTzO9Q8oHmxiTeA1j4u6aLHmfeAhVdUQz3wtWGBuEaNFjQ/vH 3odWsQLnVmFZhBdx5v4FVqtxUKa+aqvquynwTQCOD6XT3he9edrF3lzDhGY7t2+Z iuPQXkicPV2J5Jk0swItLiOR95druDoLvpOQGfNPXoYp7MWRT4mrs2LmFtnxViwc rrtbvQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fj1se0dg7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:29:41 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c7f385887bso268235755ad.0 for ; Mon, 20 Jul 2026 23:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615380; x=1785220180; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=sUJU52E8gQzRrANsqemYRxfZIyv/3tHDVZxDRAiAzhc=; b=WDFbBRKcptKo956nHBt9hnbhb1UkZ9hRqZmN7OqE5LCLS84aNV+ra4hd0bfaYaWJqZ JaEiZslGskSN/HFhsWovJ32cyOw8b38ksFWtDqf9nZhi8yF0h+84oNkHvZB58A/S0Wmy GzLGZg4QYPzOCNgTtWN1a6j0VSOBkNMu4dol21VlYHSzkzx2F3cL0x6lyu91LyiPEg1E K78BxhzYoSMwZLuQf4yXqaAuzZ2aCC3cR//6FrBwWRWwvJIjYnM12ta8PFWpdy0uZiQM 7taN1QC5RdKMEXeYpU6nMpDn0VeCk56hxp3hR/l/Bt1I3Ylyk/7hnrfHzP8PyOGTa7p6 aRTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615380; x=1785220180; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=sUJU52E8gQzRrANsqemYRxfZIyv/3tHDVZxDRAiAzhc=; b=FZasbs1WfjUULeuziMDzfsO28IUmj/bF7Lfy1kM9FEY1nxvLMhdnn2iMioBfEY6uat ChfUcb+nbvAQLZl6upNDIlA2pFuogjSccJYBpVfoyNbO2Z0YrkL0cfxFqW1b1lCnyxfW uXW800z4PckSGKGwZtEf5NtA2qOYHDBtcJYWkMbwkFqovCkwBMnbphJxvqE2q7T8Gg/Y XbX40eXOi5rfPQ/ZS1HgC1S2msMdxPaN1PnMMy3VRsLzyvbPpFDM+HN2snoQeSo4bmCa A0IGVBaQ+7WDCEoi1CTzlLexMg/a49lZIxJFFnZ18uhWC9mwz0/7q0JGcGWVg6i2tjzi 8g/A== X-Forwarded-Encrypted: i=1; AHgh+RoE7YnfZ1v8A6PSX0pBfQGe76vrMJi1tD/TzENND8HwBexuXgiQI1wC+eHswMZ3B1sbVasOiEPSlOcEMA0=@vger.kernel.org X-Gm-Message-State: AOJu0YxtDNJ4i2F+PvKbCZHzQAn3oVVg2ocndLcFCMN0OKAfn8riX4WN 7vqHZVGQ+RiB9ib8mVtqhm2k4he+WWp7lu3SbmP+DXbGYYQmk3SH0xNhgk7W3uoUV9Lql8RX8PH UNx94smUv7buK/D+60+JHuAhueQnIBmoCq5S58UP+cjqvNMwB3Dz+5g0HoOfijWIYoIs= X-Gm-Gg: AR+sD10BCG/p+r9PjAFFabW8JG9a/EhpLcpOg2BaD2UAL7vgO6kmIZKI7wR/XqZvTVk ihHuf65356PIBuDZaOc95GS0/rOVyt+7IcQrRRaAg8+todtyVmXfNy7YZ6ApTdJ073oFMocHojl Q9X6P5s1KiIrGabN5HqZ87R7RdYsAevrB53MzdUdQH42xhxBlaOJzElocizjfBM5rTF0rdtBGKC +t/8/BqWic/4g0X2ZAJWg4LhbqNCT5w5eOVIU3aqq3olgkYadoLUCx506ijBYD9aXuq1paaGVOH XQ+1/QbS+OR2aImNZDqriyxrsyGOjZdGrj7Nwwg8BE3Ww9otdXfx12p5CFausNDdZ0z9EfizeEV gz2NlXe4Ek0QHpmy9yRABmckoxiCbdQ== X-Received: by 2002:a17:903:244b:b0:2cf:7c95:953 with SMTP id d9443c01a7336-2cf7c950a5dmr38620685ad.47.1784615380465; Mon, 20 Jul 2026 23:29:40 -0700 (PDT) X-Received: by 2002:a17:903:244b:b0:2cf:7c95:953 with SMTP id d9443c01a7336-2cf7c950a5dmr38620345ad.47.1784615379989; Mon, 20 Jul 2026 23:29:39 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.29.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:29:39 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:00 +0530 Subject: [PATCH v5 3/9] remoteproc: qcom: pas: add support for TMD thermal cooling devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-3-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=5141; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=h1RranJv2jI2LM6kKtghCftRiHqPNe2hX70tj3R37IA=; b=X71gCf3J0yi/xq63/3gkPZz6xEby0/VxuJ4IHbaBHttSnwN/I4FGP12pkIRby2cN7j1jsMyO2 Z8y8pHQ071SBO/DVL3G1i2YcQ+zYBMLtKKfsiIdCRM2cznTrSTz11xq X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-ORIG-GUID: NPsggKDmjD5n7Tg5oadG2tEJViazZh2I X-Authority-Analysis: v=2.4 cv=TIZ1jVla c=1 sm=1 tr=0 ts=6a5f11d5 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=JsyU97BMdJ6RvXteW0AA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfXxE2uXyrkmM04 4JCfBobL345DYXsswoyK99SM3tpt0uHlM1+8U0fkKSM/+l8GR+NTZMUebSonjdhtgvd4KQwc9f3 RAvPkz1Jf7BGyuWl07voxvB5y3f3Nzc= X-Proofpoint-GUID: NPsggKDmjD5n7Tg5oadG2tEJViazZh2I X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX2zgMT/hwDb0w 82yF2li3G2HOtT+85cSglAWTEWSaIVwo8CvfaeG9xGjSrFD90AhPzFqJbZ4l/PUskHhYgKjffX8 agtFWEmCOEouZ8uIxxzccvHpjrF4ObNzwmxINGhkL2HyCjlJEZ5Y7e2gruT4U8ec8F0yfeUUOxb Eqil73D/fgk+RnykFMj2bFpAgl7sR8xXB+flIZwtnFM5HloJZRt66+2XFDyaQ2uHNCI50sMK6cv p+HYzwP/CkApFn1/z0mWCiQQcflb4Dy4fpUBvAZm4Mgu2BB7KsEd5RBZxjrbMkGQLmM16ffZDpN 4RELh6LTfRhTb0gGbiRAEwQch3tWQhf8E0AIJ/sS2wMIFZzC56WCDrAUn94HqlKroOFWS7ks1sR OLGCCUbbDcmhYQw1OiEKVVvVmlo/Awx9Ey8pZ4vBbBgo77sOj7FMP1E2Hb1jG4U9Boaeu1IO4ua X4eX0sX5CLMYF+OjbQA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 Register Thermal Mitigation Devices (TMDs) for PAS-managed remote processors to enable thermal throttling through QMI. This allows the thermal framework to request mitigation when remote subsystems such as modem and CDSP contribute to thermal pressure. Signed-off-by: Gaurav Kohli --- drivers/remoteproc/Kconfig | 1 + drivers/remoteproc/qcom_q6v5_pas.c | 90 ++++++++++++++++++++++++++++++++++= +++- 2 files changed, 90 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig index 65befdbfa5f7..f7c02edf395f 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig @@ -229,6 +229,7 @@ config QCOM_Q6V5_PAS select QCOM_PIL_INFO select QCOM_MDT_LOADER select QCOM_Q6V5_COMMON + select QCOM_QMI_TMD select QCOM_RPROC_COMMON select QCOM_SCM select QCOM_PAS diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 25599d728208..dc5be2c030cf 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -5,6 +5,7 @@ * Copyright (C) 2016 Linaro Ltd * Copyright (C) 2014 Sony Mobile Communications AB * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 #include @@ -26,8 +27,10 @@ #include #include #include +#include #include #include +#include =20 #include "qcom_common.h" #include "qcom_pil_info.h" @@ -38,6 +41,16 @@ =20 #define MAX_ASSIGN_COUNT 3 =20 +/** + * struct tmd_name - TMD device name to cooling-device index mapping + * @name: TMD device name + * @id: Cooling-device index used as #cooling-cells cell 0 in DT + */ +struct tmd_name { + const char *name; + int id; +}; + struct qcom_pas_data { int crash_reason_smem; const char *firmware_name; @@ -58,6 +71,10 @@ struct qcom_pas_data { int ssctl_id; unsigned int smem_host_id; =20 + unsigned int tmd_instance_id; + const struct tmd_name *tmd_name; + int num_tmd; + int region_assign_idx; int region_assign_count; bool region_assign_shared; @@ -122,6 +139,8 @@ struct qcom_pas { =20 struct qcom_pas_context *pas_ctx; struct qcom_pas_context *dtb_pas_ctx; + + struct qmi_tmd_client *tmd_inst; }; =20 static void qcom_pas_segment_dump(struct rproc *rproc, @@ -798,6 +817,64 @@ static void qcom_pas_unassign_memory_region(struct qco= m_pas *pas) } } =20 +static int qcom_pas_setup_tmd(struct qcom_pas *pas, const struct qcom_pas_= data *desc) +{ + struct qmi_tmd_client *tmd_inst; + const struct tmd_name *tmd; + const char **tmd_names; + int i, ret; + + if (!device_property_present(pas->dev, "#cooling-cells")) + return 0; + + if (!desc->tmd_name || desc->num_tmd =3D=3D 0) + return 0; + + tmd_names =3D devm_kcalloc(pas->dev, desc->num_tmd, + sizeof(*tmd_names), GFP_KERNEL); + if (!tmd_names) + return -ENOMEM; + + for (i =3D 0; i < desc->num_tmd; i++) { + tmd =3D &desc->tmd_name[i]; + + if (tmd->id < 0 || tmd->id >=3D desc->num_tmd) { + dev_err(pas->dev, "Invalid TMD id %d for '%s'\n", + tmd->id, tmd->name); + return -EINVAL; + } + + if (tmd_names[tmd->id]) { + dev_err(pas->dev, "Duplicate TMD id %d for '%s'\n", + tmd->id, tmd->name); + return -EINVAL; + } + + tmd_names[tmd->id] =3D tmd->name; + } + + for (i =3D 0; i < desc->num_tmd; i++) { + if (!tmd_names[i]) { + dev_err(pas->dev, "Missing TMD mapping for id %d\n", i); + return -EINVAL; + } + } + + tmd_inst =3D qmi_tmd_init(pas->dev, desc->tmd_instance_id, tmd_names, + desc->num_tmd); + if (IS_ERR(tmd_inst)) { + ret =3D PTR_ERR(tmd_inst); + if (ret =3D=3D -ENODEV) + return 0; + + return ret; + } + + pas->tmd_inst =3D tmd_inst; + + return 0; +} + static int qcom_pas_probe(struct platform_device *pdev) { const struct qcom_pas_data *desc; @@ -925,16 +1002,24 @@ static int qcom_pas_probe(struct platform_device *pd= ev) if (desc->early_boot) pas->rproc->state =3D RPROC_DETACHED; =20 - ret =3D rproc_add(rproc); + ret =3D qcom_pas_setup_tmd(pas, desc); if (ret) goto remove_ssr_sysmon; =20 + ret =3D rproc_add(rproc); + if (ret) + goto remove_setup_tmd; + node =3D of_get_compatible_child(pdev->dev.of_node, "qcom,bam-dmux"); pas->bam_dmux =3D of_platform_device_create(node, NULL, &pdev->dev); of_node_put(node); =20 return 0; =20 +remove_setup_tmd: + if (pas->tmd_inst) + qmi_tmd_exit(pas->tmd_inst); + remove_ssr_sysmon: qcom_remove_ssr_subdev(rproc, &pas->ssr_subdev); qcom_remove_sysmon_subdev(pas->sysmon); @@ -960,6 +1045,9 @@ static void qcom_pas_remove(struct platform_device *pd= ev) if (pas->bam_dmux) of_platform_device_destroy(&pas->bam_dmux->dev, NULL); =20 + if (pas->tmd_inst) + qmi_tmd_exit(pas->tmd_inst); + rproc_del(pas->rproc); =20 qcom_q6v5_deinit(&pas->q6v5); --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE69D408636 for ; Tue, 21 Jul 2026 06:29:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615391; cv=none; b=EErEylHyZ1+h/lbZiwacv2nxiO7SBwD/zU2iwY5gU8QhR5R19ezcVj0NQTxyEvMg4Quxu9vxKzRWn6XkndFZd+57NPGANjoGANRuyFjy2SM+RPm7yJ8OiRcG44g1nRRHRCv+toehflh3xdgbZqVwFILaAP/IV1AnRPUtqoYqbdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615391; c=relaxed/simple; bh=GONTJSYcNvJs7QEMLgaR+oUX4qDBOmqUBB2BocJpUds=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XPh4UBzidzaehHYAyNhvrTnZDpG9Ed+1/8BcSILtUIxYIBm9h/l7NCsYHivNiVg7AZ75GxZMI/9sAhFSzVIw9yndlooeX5oZvypMMkuJGcAXNUjBeSO/ymmvBl4AESXx8yNhGM5O9Hv4Ujw7+X+IYz1W4uU3LgbnDpBpLdt7oYs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=GxGbqdaZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EM5NFBvT; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="GxGbqdaZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EM5NFBvT" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L4SruK527381 for ; Tue, 21 Jul 2026 06:29:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 2cDFJuefHfzoEFQ+pZuZu+bCX06c3eux2xACecFGf1A=; b=GxGbqdaZ/olVd+em 7zZlkM/L3gam7eL4iXvXk5ztYsycsw+NCwPM8Ta3BQgsqKLsO7hWJpCkMNV8ld7i 7ApX3NBSnkOilXfYSfUc4wJziHRwKo3b1434j94LC3Ly/eaGt52WQyI/FH/yYrbY Gcb0LmyIpvQ5GYg+hWULDT7OGIcdyidvVCJdCGgf4XFogrUULi4NZneMH2Q0Vo+z /pVSBmXC+JesHFa88OCLoVLOQL8dMrvzOvjtTO0pbwhPqOEgg3AbVZEOWAJim2nT GTIeS52CHBvtHxhYKbFh7arGK+cQGcQFvA69qSA3PoNBif7Z3M9vx/RJwZ5Xa5N5 5M+v9w== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fj1se0dgs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:29:48 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ccb6f6a3f4so84379295ad.1 for ; Mon, 20 Jul 2026 23:29:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615387; x=1785220187; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=2cDFJuefHfzoEFQ+pZuZu+bCX06c3eux2xACecFGf1A=; b=EM5NFBvTTihb8h4e5+WeyUqYwcJqh21hqtBfQwTsEGNbttMYZme8vqgP4ZZci6wxjm fThrTe7BT9d4sR0QYQBtcMoH1A7ioygC5jA7igHRwfWKEJftex4AsjPuLToDdUNzdmWY MIfYKvfQDpMMS5hvDOTjP8oUkqMtln9c7R5pdodaERIXIFZYmKFCFNeMeAqWWdqFcY0R DT/r82oaeTOpsetLfRz2JBxjc6nru0x+9v0AaRlUNn4NV6TmmrE+5l/UDax0fH94qjFM I1hC2TCwNKI+K1KM/Cdf1xAQqYUpgz8YKg6QedxMi31Efti3uPxaq0CDzmrs/iB1YZOV 9VEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615387; x=1785220187; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=2cDFJuefHfzoEFQ+pZuZu+bCX06c3eux2xACecFGf1A=; b=KJeZeD48OMKNYkrbApOmmfaA4oSyRwo/2mb6Cy1V4t253XhC4pIqZRpdLVPKmTKuir LQPrfhFOQwSQzACO2NIbEDHhgl7kOcdAiWu3t+KW6pxVZ80zaKLMlPM0cdb3bPHXbAwx KIwsaKSdo8YZS6VXGZlm1FPBu6R+Sgl1PxjW9+NSfLF4W0N/ntj1TjNxkQfGZjSPhuEP OY7rjfxxul4f6dgennBQm/JfZz+LAeQtiqCOk/msWNOoebdWjfV61gvUiTc4i6qRSt2i cCKD4XmvbiNnM0RmZ6hYIgWxe0ECvEqiJZ+M+whLIt1nYkc1ySrmqZ5cAbe8+BAiH2i6 TWXg== X-Forwarded-Encrypted: i=1; AHgh+Rr5XZa8Pw8tVvFklJZqIGTcLt0AQpPR8CeL6nr8/IAVe0p/mHRr0otS/sW3LxMWdvX06zTGN5tWWoRe1xQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yzs3xM8yn/uPUwSop7gocnCvIJCjruL+C5hOKrEnNmxFtIwGsoB gIs6DYAu+fJYKsN3OmnmMJ3MyWN4MmFEIACUICPJcYIGGipbELp0HRWU/PTsEqHUgbrEPmqlknI O4Hj5F0FaLEsD1ZfzFnV3R/AZK1l8YgCs33ybXjbyY9PTDMEHDGSxQVi5i2ly0ycFRjk= X-Gm-Gg: AR+sD13P7u8DqR8DxH+1WZgx5p5TuNr+9k+gCeWlyoP50pMUPB5B2b7W8/N247t0pUP wuAVmfsAQvJRGuMG8dk5RMCoBcB29wmzRbBlwma5RburNKyCCzAqQaks5sCL69lSmHwA7WkNXca 4UZ6YrpkIpL6Cz9rEG6uuJUS3LY9yTWB2dRs/GAmzwJ0HeimHRjR+7mjz4vpZL56eno9qPcvRaT j6JiXYk9c5C4k9+y08pAVE1QMj6sy28dV+vI42Jv2GV4UvF2uKGo9jBiBDpovDwvkw2k42krWN1 KVsy5QH5p15quSG2XbZ08gavxzr4PWO+ePym0mkYBExfXXHO/gLWYoxN/4JmHbMP79jGWmIVwbE B+uwXW25XJ1cAbXgo6me+kYr5bc/sWQ== X-Received: by 2002:a17:902:dace:b0:2ca:c847:8e41 with SMTP id d9443c01a7336-2cf349776aemr186656875ad.11.1784615387496; Mon, 20 Jul 2026 23:29:47 -0700 (PDT) X-Received: by 2002:a17:902:dace:b0:2ca:c847:8e41 with SMTP id d9443c01a7336-2cf349776aemr186656425ad.11.1784615387041; Mon, 20 Jul 2026 23:29:47 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:29:46 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:01 +0530 Subject: [PATCH v5 4/9] remoteproc: qcom_q6v5_pas: enable QMI TMD cooling support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-4-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=3908; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=GONTJSYcNvJs7QEMLgaR+oUX4qDBOmqUBB2BocJpUds=; b=BwrCwaSCqBPUWGlnTL2wsEEb+Jau6H/89XXTF3ADd5CjoiwlARMFX7VspHoYS97DU8RHHTXSR dqTcROa0xcgBm6MNvhG5KHElrRJHgOTVv1vnuU2fICDU1zNKzKcB4n5 X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-ORIG-GUID: fkrmgIVwtL07OubIgdXyd1E27K-Inmjo X-Authority-Analysis: v=2.4 cv=TIZ1jVla c=1 sm=1 tr=0 ts=6a5f11dc cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=j6jQExit_mXiN_RbaP8A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX2+X9B5HpWr+o Elk3NHRqulm0N1H/03bu0Hxovfgtzhbx/iQ+d3XrnRcizgI3G/lcUFPdY9pg/e6Sh18WTVAfHKG V3jDVnKKhaf75Ra4yIxn3XyhUuq0XYY= X-Proofpoint-GUID: fkrmgIVwtL07OubIgdXyd1E27K-Inmjo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX48NsMUOeNdRr Pmn6uLXtcIIQj6GTf/1lM/jK7nsRI2jcCZWIUmXNT8DKJTTVxHhTGVMbOG9ZYGuUBb7TJLI3P7v auF3vZHLyyvsDT3m3QgeKlCnuyt/gEp1QODIn8jLEY7qGtTbuvPbq50db/iGRwvIKhVuVEq1ixv Gsyj8teQ2uzfwCOM92bNNO/ceTpN4tDZz2jD9HGnkfe6Qp4qEFF0Ww4Jur/lq+2HBHb2+nAXJGS WaV18xLYKthOU60K+wkfUB+F45Z1QS8y5j6US/dIccEM/chWcVLEr3w5SUQZhhNkUWBKYrm3WoP hDenYdJ4uZwv4MAm+ZjuSSQml/x0aRQMoSWzXkGOj/lDVNx8g40FtWrxWT1ZKcvDqOUDUDlfCjb qx3N/Tqhm2Y8fmCy5u+5sXgcpEcsQ2crnLgnL1/3kPMLPovh4FPaXA5czF5AkfgJDOw5oZwSP1M 9haEhANZRQefflbR7mQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 Enable Thermal Mitigation Device (TMD) support for PAS-managed CDSP and modem remote processors on platforms that expose the QMI TMD service. This adds per-platform TMD configuration in qcom_q6v5_pas for: - Hamoa (X1E80100) CDSP - Kodiak CDSP and modem - Lemans (SA8775P) CDSP - Talos CDSP - Monaco CDSP For each remoteproc, the configured TMD QMI instance ID is used to bind to the TMD service running on that subsystem (e.g. CDSP: 0x43, modem: 0x0). The driver then uses the corresponding TMD endpoint names ("cdsp_sw", "pa", "modem") for cooling-device registration. QMI TMD identifies mitigation endpoints by name, while DT thermal bindings reference cooling devices by id. This change provides the mapping between DT cooling indices and QMI TMD names, allowing remoteproc nodes with #cooling-cells to act as cooling devices in the thermal framework. With this in place, thermal policies can request mitigation from CDSP and modem subsystems via QMI under thermal pressure. Reviewed-by: Daniel Lezcano Signed-off-by: Gaurav Kohli --- drivers/remoteproc/qcom_q6v5_pas.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index dc5be2c030cf..b7fb4326ada8 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -1061,6 +1061,15 @@ static void qcom_pas_remove(struct platform_device *= pdev) device_init_wakeup(pas->dev, false); } =20 +static const struct tmd_name cdsp_tmd_name[] =3D { + { .name =3D "cdsp_sw", .id =3D QCOM_TMD_CDSP_SW }, +}; + +static const struct tmd_name modem_tmd_name[] =3D { + { .name =3D "pa", .id =3D QCOM_TMD_PA }, + { .name =3D "modem", .id =3D QCOM_TMD_MODEM }, +}; + static const struct qcom_pas_data adsp_resource_init =3D { .crash_reason_smem =3D 423, .firmware_name =3D "adsp.mdt", @@ -1218,6 +1227,9 @@ static const struct qcom_pas_data sa8775p_cdsp0_resou= rce =3D { .ssr_name =3D "cdsp", .sysmon_name =3D "cdsp", .ssctl_id =3D 0x17, + .tmd_instance_id =3D 0x43, + .tmd_name =3D cdsp_tmd_name, + .num_tmd =3D ARRAY_SIZE(cdsp_tmd_name), }; =20 static const struct qcom_pas_data sa8775p_cdsp1_resource =3D { @@ -1236,6 +1248,9 @@ static const struct qcom_pas_data sa8775p_cdsp1_resou= rce =3D { .ssr_name =3D "cdsp1", .sysmon_name =3D "cdsp1", .ssctl_id =3D 0x20, + .tmd_instance_id =3D 0x44, + .tmd_name =3D cdsp_tmd_name, + .num_tmd =3D ARRAY_SIZE(cdsp_tmd_name), }; =20 static const struct qcom_pas_data sdm845_cdsp_resource_init =3D { @@ -1263,6 +1278,9 @@ static const struct qcom_pas_data sm6350_cdsp_resourc= e =3D { .ssr_name =3D "cdsp", .sysmon_name =3D "cdsp", .ssctl_id =3D 0x17, + .tmd_instance_id =3D 0x43, + .tmd_name =3D cdsp_tmd_name, + .num_tmd =3D ARRAY_SIZE(cdsp_tmd_name), }; =20 static const struct qcom_pas_data sm8150_cdsp_resource =3D { @@ -1278,6 +1296,9 @@ static const struct qcom_pas_data sm8150_cdsp_resourc= e =3D { .ssr_name =3D "cdsp", .sysmon_name =3D "cdsp", .ssctl_id =3D 0x17, + .tmd_instance_id =3D 0x43, + .tmd_name =3D cdsp_tmd_name, + .num_tmd =3D ARRAY_SIZE(cdsp_tmd_name), }; =20 static const struct qcom_pas_data sm8250_cdsp_resource =3D { @@ -1362,6 +1383,9 @@ static const struct qcom_pas_data x1e80100_cdsp_resou= rce =3D { .ssr_name =3D "cdsp", .sysmon_name =3D "cdsp", .ssctl_id =3D 0x17, + .tmd_instance_id =3D 0x43, + .tmd_name =3D cdsp_tmd_name, + .num_tmd =3D ARRAY_SIZE(cdsp_tmd_name), }; =20 static const struct qcom_pas_data sm8350_cdsp_resource =3D { @@ -1430,6 +1454,9 @@ static const struct qcom_pas_data mpss_resource_init = =3D { .ssr_name =3D "mpss", .sysmon_name =3D "modem", .ssctl_id =3D 0x12, + .tmd_instance_id =3D 0x0, + .tmd_name =3D modem_tmd_name, + .num_tmd =3D ARRAY_SIZE(modem_tmd_name), }; =20 static const struct qcom_pas_data sc8180x_mpss_resource =3D { --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0ADF740BCB0 for ; Tue, 21 Jul 2026 06:29:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615399; cv=none; b=G8esIoTpU13s8b9HwqqUgsOnNiaalY+Jql/CYIeajZ8Z/k4RgEE1PA/prE5y4IucLJuKYoLUUcp8859IFdX+I8ahif0R4HxBMnZZFNrGnLLXUIUL82UtdFc8xKPOQAsZ9ZCZsz4IL/Ucez70DRkW+ooGYRkTXigSCXkwF/QmHTo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615399; c=relaxed/simple; bh=ZifbSMwbsL6byJybvyJVqhBSYfY+Ur7ZoLWanU+zR6c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iuVlCL/RSHDbUK2/5JHDPLcUKoM+v/eOAoZ3pFojJ2AFtrxoVN+Krx72OOoJK4wdomJEos9vXv0kVma58vxHdwhPiEYlM+Ram8eTfGmF3/r9/+S5XoulG7u7ebeltzj0iyPlVbD2bTKy8xWXp5V3vtAcS1FBhuG22/RNz53bY5U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=EqklPy5Q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Dhi3aztM; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="EqklPy5Q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Dhi3aztM" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L6HsFw4150259 for ; Tue, 21 Jul 2026 06:29:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= cBQpj5JJuprPEDHJoD7J9a7kieOLqOFIM3U9fFzAGEk=; b=EqklPy5QRQAH5VsW 4yelLrNi76jaM2bFOmsB7x1TGwfb4eU/+oUvm/bGazaLCfxmVfHMrLW0CmX0/v9S tIxYgzLWPZSZNN6sNQdx7/oObeLcY80p+8T9wBZmTb6Yx8eJkd7KYG7esUzmMXDO up0k5/zWl7CQ4jQi6YY/qvDF8dd9J5OPUiyTiUOGy/TFuiqUMOSDcJK/Gt6Y0t3/ rYLHx7R+3wRpTJHuelocpwrf4q7xdiIU/ocTbU2ydXWCUt3zRVmTkc38z7AAY9aE gzywo2l9vhPfE8tpw3C8BT5PImuOSwN3QDbfGxw0ezmmN+hsXDhfcaGY4LPA2p9U JmYoUg== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhqff2vxf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:29:55 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cc7e86e7c5so196146465ad.3 for ; Mon, 20 Jul 2026 23:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615395; x=1785220195; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=cBQpj5JJuprPEDHJoD7J9a7kieOLqOFIM3U9fFzAGEk=; b=Dhi3aztMlfmt9T2bpDLw2RgGgRrpw4ctvLlDCKgLouvvkrT8+mmnooMlHCl5u8ynOC o6gy0U9zK2KJehADhA/hLjESwFc2rLI2I4yxypJ8g7wFMd6cFdD0KXLE4ikUiv9hkwPs WP9aurIHuz1ecs6DZpC3ojvoovwasZzeRDz1uIh91DnAzidMqMl/BkPPe0c/+EQQX774 o7CLiFJrgek6XzQNFoFC7ln1VTaVW7uPvVVg4WiN562jgTHvVd+E2aynSYChUQ10XS8y I3b1VKAjyJTBOq+DbIo/hCZuYseeKQsOXtA5lxMv924TA+yeWZqxOo1JLDDieG99/tIR M1nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615395; x=1785220195; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=cBQpj5JJuprPEDHJoD7J9a7kieOLqOFIM3U9fFzAGEk=; b=CVCc2LA0bKmTcDB/T0aSEMFa+lW1hRygqpM3XRAN/6kpze+zUx9ORvq+iQFaZzj2K9 aHjWxhdDvFIroHZQRfCUytf4ukLN+a7bZfk3dekYerX5RFSXA1xlkRCXpRvksX5dqQZC Rv+m23yBivakmae5aRCmRWSIz4HCryQG0EVNnY+Zz+2yAdQJb3CWBkkpk4XGPUq2+PcI Pes4f6HpeySbHhQA1WEHQzg0rx0pm8N3iXOnAxOlJcw2OaG9AObZXDi6Inmobp3NlblD 2BxaWUAdOP1DOYoVp9qigUizZH/KllTbkXg1ozsZTqLV7vy+olhtkSjma49rWm/UC0/r AgXQ== X-Forwarded-Encrypted: i=1; AHgh+Rp8kc8kukGuAmlUZJto/hpR+AWN5ci0Y0aC2ApPEdZoAUCPJ5kT5rgjmKjeDWo52ouHHtENJrjpptq9CBI=@vger.kernel.org X-Gm-Message-State: AOJu0YxYQD2nZ9f5cpdD/o0DBaK+ltY01Dt2a/gYYXxJLiM4VDWjADAp OMFO7H7gMYobK6rPizSyiozKc7husXjTu2RhrJ7hQhHOBgBDLh+Z9u4gFDd+6b9CXXPbQ+nRY4u xMK66qX8/z9cJ/Pd+XVt2vhyYEkIogqk6Pp8DGRzjkxmg+r/DbrB+GP5Cx3UmBIOVVtI= X-Gm-Gg: AR+sD13Ma6wx5YnlrQekdhq2ZZ7c7HAauE6M4+JrmZd+LXHdvOLrOQHJ6CRJlLlkaLo p4NsLcP5eQcxUCF33bTs/OhLbsv4vHfaW94Y/QQltSkJRm32kHuDyeekRaT7ZZS+T0xe7ob2qt/ yC/LQS8oLTQN957FR15I3NzgaVUsVsY+NIL8M2sNKgcwR0uAO6WjzQ6IrGjxnNo8xAOW6+4Y0bm r/wIMsqEOVp+yt1wfOIH3qq3hh60fp1/KVBqk0Ans3upDX+K8fIxeM8uxqVAJhhfgHtUEAtdPwo AzBtbfVYMl0UI7AWRYoaCLCm4id89fA6GOh/Qt2kskiaDGrgxJ653tCuanAElZ+oipH4gnfAgIR 1txu+rbCwjNZu8QWkBEzmAnTQICWdXw== X-Received: by 2002:a17:903:13c6:b0:2c9:cb1b:64d6 with SMTP id d9443c01a7336-2cf348686a0mr183194725ad.19.1784615394561; Mon, 20 Jul 2026 23:29:54 -0700 (PDT) X-Received: by 2002:a17:903:13c6:b0:2c9:cb1b:64d6 with SMTP id d9443c01a7336-2cf348686a0mr183194465ad.19.1784615394071; Mon, 20 Jul 2026 23:29:54 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.29.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:29:53 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:02 +0530 Subject: [PATCH v5 5/9] arm64: dts: qcom: kodiak: Enable CDSP & Modem cooling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-5-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=13045; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=ZifbSMwbsL6byJybvyJVqhBSYfY+Ur7ZoLWanU+zR6c=; b=cv1nNNK+Ow/xYBvH2Re5AaOymssxAIRJyPP4IzMDpVMBsdrOYbiF3Ux+VCNLnrTrbae02rTez u/kXa+jxmEPBX/1Ty0kohCScwsnBxLOUeo+9k/4FvXXpzaglettn4Gs X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfXze8medU+yq3T x7FbUwW/HStiPlz9gqXk4ft6OtAWWEa98gkRj42DlaQID09KsfI6NyfJ3QZAph2I+xsJ5VVPqQh 8nz3UBBJeQ+8RErZqOtWqGk1ZoeLRoE= X-Proofpoint-GUID: 4UM6TI1uypfocsXuILh8qnlNkl2kzUkX X-Authority-Analysis: v=2.4 cv=FJErAeos c=1 sm=1 tr=0 ts=6a5f11e3 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=ZbsVDflEkj9MvQmDaakA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX+BRUW09b8Hh1 GQsTyNsI400y0c19BK2gT5g0jMEnn8IijBcnwQGWCiArPhcsvmyi9e8EteEuu4lgsoEBtsM+RXx JIjv8ox6PFMpQCjZKUPTZaHXyAvrg7T0dnSoywxOikoeGsuHPb01Hs9H8QDnEhn8bEIuBTVBnJk lElLf9VtgvHZ/zDsRVMqfikdsPDCsxO+TqqgToI58PVGZMyDJJcAE/q2ov7r4Yev6H7Xp/x2jo2 T1k8U3w+osh75nJ27bPdrGET44DkfDmB1VoSmkjr78giYUXwJ30TUBJ1oxLOPvn/BiNnwiw+D92 5z9Fc7gmx4r3qKBAX6wyDJzVD+SU50YTXP8IKXmH30eZ9onsPWyvSWK0tMzLnvT0ft8qtX7aUyl JHpQEWL8sp6wmtFKkSmy8FHTbsgyHpGlhBG1UyrEsQO0t4hml0ihbhmnegH0VuJBDLSx3FVOnYW 4cclTprt982DuKJ7iSQ== X-Proofpoint-ORIG-GUID: 4UM6TI1uypfocsXuILh8qnlNkl2kzUkX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 spamscore=0 suspectscore=0 bulkscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 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=C2=B0C and for modem when it reaches to 95=C2=B0C. Add polling-delay-passive so the governor periodically evaluates the zone during passive cooling and steps up cooling levels when temperature stabilizes below the next trip. 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 --- arch/arm64/boot/dts/qcom/kodiak.dtsi | 134 +++++++++++++++++= +++- .../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 29 +++++ arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 1 + .../dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts | 29 +++++ .../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 29 +++++ .../boot/dts/qcom/qcs6490-vicharak-axon-mini.dts | 29 +++++ .../boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 29 +++++ .../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 28 +++++ 8 files changed, 304 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qco= m/kodiak.dtsi index 7e73348fe0d0..df5099023b77 100644 --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi @@ -30,6 +30,7 @@ #include #include #include +#include #include =20 / { @@ -3431,6 +3432,8 @@ remoteproc_mpss: remoteproc@4080000 { qcom,smem-states =3D <&modem_smp2p_out 0>; qcom,smem-state-names =3D "stop"; =20 + #cooling-cells =3D <3>; + status =3D "disabled"; =20 glink-edge { @@ -4803,6 +4806,8 @@ remoteproc_cdsp: remoteproc@a300000 { qcom,smem-states =3D <&cdsp_smp2p_out 0>; qcom,smem-state-names =3D "stop"; =20 + #cooling-cells =3D <3>; + status =3D "disabled"; =20 glink-edge { @@ -4922,6 +4927,7 @@ compute-cb@14 { }; }; }; + }; =20 usb_1: usb@a600000 { @@ -7732,6 +7738,8 @@ map0 { }; =20 nspss0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 3>; =20 trips { @@ -7741,15 +7749,31 @@ nspss0_alert0: trip-point0 { type =3D "hot"; }; =20 + nspss0_alert1: trip-point1 { + temperature =3D <100000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nspss0_crit: nspss0-crit { temperature =3D <110000>; hysteresis =3D <0>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nspss0_alert1>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nspss1-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 4>; =20 trips { @@ -7759,12 +7783,26 @@ nspss1_alert0: trip-point0 { type =3D "hot"; }; =20 + nspss1_alert1: trip-point1 { + temperature =3D <100000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nspss1_crit: nspss1-crit { temperature =3D <110000>; hysteresis =3D <0>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nspss1_alert1>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 video-thermal { @@ -7803,7 +7841,9 @@ ddr_crit: ddr-crit { }; }; =20 - mdmss0-thermal { + mdmss0_thermal: mdmss0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 7>; =20 trips { @@ -7813,15 +7853,37 @@ mdmss0_alert0: trip-point0 { type =3D "hot"; }; =20 + mdmss0_alert1: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <2000>; + type =3D "passive"; + }; + mdmss0_crit: mdmss0-crit { temperature =3D <110000>; hysteresis =3D <0>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&mdmss0_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + map1 { + trip =3D <&mdmss0_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 - mdmss1-thermal { + mdmss1_thermal: mdmss1-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 8>; =20 trips { @@ -7831,15 +7893,37 @@ mdmss1_alert0: trip-point0 { type =3D "hot"; }; =20 + mdmss1_alert1: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <2000>; + type =3D "passive"; + }; + mdmss1_crit: mdmss1-crit { temperature =3D <110000>; hysteresis =3D <0>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&mdmss1_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + map1 { + trip =3D <&mdmss1_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 - mdmss2-thermal { + mdmss2_thermal: mdmss2-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 9>; =20 trips { @@ -7849,15 +7933,37 @@ mdmss2_alert0: trip-point0 { type =3D "hot"; }; =20 + mdmss2_alert1: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <2000>; + type =3D "passive"; + }; + mdmss2_crit: mdmss2-crit { temperature =3D <110000>; hysteresis =3D <0>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&mdmss2_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + map1 { + trip =3D <&mdmss2_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 - mdmss3-thermal { + mdmss3_thermal: mdmss3-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 10>; =20 trips { @@ -7867,12 +7973,32 @@ mdmss3_alert0: trip-point0 { type =3D "hot"; }; =20 + mdmss3_alert1: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <2000>; + type =3D "passive"; + }; + mdmss3_crit: mdmss3-crit { temperature =3D <110000>; hysteresis =3D <0>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&mdmss3_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + map1 { + trip =3D <&mdmss3_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 camera0-thermal { diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/a= rm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts index 82ebd88f9aba..befd3f908ce5 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,35 @@ /delete-node/ &adsp_mem; /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; + +&mdmss0_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss1_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss2_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss3_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + /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 e9a932c90d14..48751bc2265d 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts @@ -25,6 +25,7 @@ /delete-node/ &rmtfs_mem; /delete-node/ &adsp_mem; /delete-node/ &cdsp_mem; + /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 c8eed8ba93f5..041a02a03d1c 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,35 @@ /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; /delete-node/ &mpss_mem; + +&mdmss0_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss1_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss2_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss3_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + /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/ar= ch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts index d8a9a7e47bdc..764c9dab046e 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts @@ -23,6 +23,35 @@ /delete-node/ &adsp_mem; /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; + +&mdmss0_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss1_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss2_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss3_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + /delete-node/ &mpss_mem; /delete-node/ &remoteproc_mpss; /delete-node/ &remoteproc_wpss; diff --git a/arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts b/arch= /arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts index 4f2e0109f49b..2a49f07ceed1 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts @@ -25,6 +25,35 @@ /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; /delete-node/ &mpss_mem; + +&mdmss0_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss1_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss2_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss3_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + /delete-node/ &remoteproc_mpss; /delete-node/ &remoteproc_wpss; /delete-node/ &rmtfs_mem; 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 ac89724ee099..ccb13d2fa5c0 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi @@ -28,8 +28,37 @@ &ipa { status =3D "okay"; }; =20 +&mdmss0_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss1_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss2_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss3_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + &remoteproc_mpss { compatible =3D "qcom,sc7280-mss-pil"; + /delete-property/ #cooling-cells; reg =3D <0 0x04080000 0 0x10000>, <0 0x04180000 0 0x48>; reg-names =3D "qdsp6", "rmb"; =20 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..87b8ed5d1893 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,34 @@ =20 /* WIFI SKUs save 256M by not having modem/mba/rmtfs memory regions define= d. */ =20 +&mdmss0_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss1_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss2_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + +&mdmss3_thermal { + cooling-maps { + /delete-node/ map0; + /delete-node/ map1; + }; +}; + /delete-node/ &mpss_mem; /delete-node/ &remoteproc_mpss; /delete-node/ &rmtfs_mem; --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F206B40B387 for ; Tue, 21 Jul 2026 06:30:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615406; cv=none; b=BcVimXv1XaZ16uPRV/qvpyB4f8gXMiFl1wGhkBimtFCoGAIeCir01zBZZIR5DLGOitAn5yT/ayNsays9Z8XCDc1GsmcPxxZ3QXSqwV/1v2Z8j+m/M5ege84SqESvNrgUh4QLMtp48OSi2AIkUckw/Lg+voKXMO2iyKpuCuwBpkg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615406; c=relaxed/simple; bh=cz7qH0fM/U0F9tsO23qklpcnKFFftVZvMQyY4O75Cu4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nw+FEQ9v7uKivOv7A+l3qdEfaMjQUc3nL+omuPMjtRlTcXB1HfsnKryvDoWaQCAjc14sa7x2mvmW2KbYb4Dtqr4YSC6SBi8lINIuystJvaK+m82MumOy9/O6zcyjV2GOS/dQ6ZNVPNJIO5t4rf7KfEvL9X8MbNFEqNagxSXYE00= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Q1sU/Wnm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=O8jJ6r/N; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Q1sU/Wnm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="O8jJ6r/N" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66KNCp0v3978338 for ; Tue, 21 Jul 2026 06:30:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oddz51t1pYs203ZbkRHzKFa0KfovRfAUEcnmjw58rV8=; b=Q1sU/WnmM32wHkA7 vPDLrBilBc8hajnPz5zLxYhV8ZgNFZUVIlCR1otSvoN5Rpd33ZHF4DA13Nyy6Wno Pl3idXwfCgWqwd7GtKBxSVu0xL92hs5FnZLdGX+Y+hDtKxHzvrYeSAVJXh5Ry+yY UEp3toM1H+kkBY1xYjYQVmn8llSO0ePG03S/h4CAQZ6shogqkPB1BsKvHrDL8F8d +gZCGe2pZgsp/YQ6SKh0opv0mGxakUvKdw72mTdAeug6zuoUOaCC9qpcYGPCqgK4 SCQKsG/7vaZVYaAjCwdQwPlTH4EcqI6vbG9zcJzSobtxdzMMBfQufMWi165GeURg 5X/xMQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhqv42s4a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:30:02 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cc73f47bdcso202880025ad.3 for ; Mon, 20 Jul 2026 23:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615402; x=1785220202; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oddz51t1pYs203ZbkRHzKFa0KfovRfAUEcnmjw58rV8=; b=O8jJ6r/NEDZyLdwER+RnRXNrGZGLfnL5qEPqxh3SV0gDsfk5+3ubvI1i+uaHzkCLZn 93zilCK5uAsu1fe2dj2TEpOW58R/ntR4d9jKSCxIz3f9prNfc7pVlPsA7vgRHTbG+PbB XLfx0eqQbsG9ISoiyqZvqEdmZ6Q3u0h0AUP7m5r+D+RFRHJIs4FzJ0VFIqknKEkBUMsB DO9SeRsnlUZgTTIcnpmzgtKV5KCJeVrOHYX3/Q4PavpDYeVhUlWf9P6mw9LFjim75Hp3 jFShnrlHSRXP0EQ7jTH7Pktfb1SiM8KQE4g213r2iQXvAbEvGLIMXok9eJ9UM1uUvxst HAWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615402; x=1785220202; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oddz51t1pYs203ZbkRHzKFa0KfovRfAUEcnmjw58rV8=; b=Se4WlW0gpW7oTJnyPXd2DEkjc96fsSLZ74PO+Zd+El87yKVESuu2Zk1vLnyTquNDb0 5IZAeIxdYSPa+bJxQwEn5N3FuB8vYBXJ7mpr57ns2Dm3h/d7BYXq8Ci6NOvQg+DpQfWA 3dKE/dmzWJxUPs6jV/DnCOCEJAMw8Gdd4J43EYgboB+f0DuHk1wMM+v/zya9tL0vJccY X3o1zuWsRGWwbMYTSHag2sDhNXae4ki/Ul6aJDD+Z0tcA3NQI+axnk7UwsnIKReiFcUS UG9rtpsNIq6sTK/hSnUQETXTqfrinNY9Q5vO4kOahHcvTPnpVmKLAGD9n3ahmfUWnw5F 3FWA== X-Forwarded-Encrypted: i=1; AHgh+RoTmhTZ8e7GH48OHJiasSEmjmiPeBBHA0+dXP2l2zqivsWpWOtbCjbepXY7M34KLYAs1vQYu3KHnEIlaEk=@vger.kernel.org X-Gm-Message-State: AOJu0YzZm5mnXpgTqr1iG+qSlHzinTtgMN0/MgmV7ovcnY97T3epWgjF TzS/OPmPjyiqK477qo0ACRtpiN1N7Zegwuk9LCBqjx4cJxvtYWLq+/pBlCaJDWKZbbNXIPgVW06 V6vROGfSsqq0C2i8zplSj62SHY9xZ6Rk1TwqQXpMDvRIjDWpykiNpuLASusAIkOBNYiw= X-Gm-Gg: AR+sD10k2cmPS52NM4GB+nny4hFQ4Bw7gicxuI8FG2XC4cTnEpdYbkesn4i5hRaNWW8 /EDMCTdrVZGWskWDSPcaeE5kH0t2Vsjh9KA4EiXaTNW4sLZ6vQ5LB9AZyLHQtUmR3/SVXR+62sf /tOX9lOoxk8OpgOxazfJpU45PDVRhwhOhyjrBCflSY2UBOFor+sMLKRiWdP+Eb2Nzk6xzKyAg9v DLE1kPiQxMXcxDUiec9bvBUlJd4rkydOgwptJ1LOOR3TDpGm7i0U2/oyeUTRzFg8ZShs79GXWDa F21rx8o56jgn6JLXGoYMVQN+NMO28j0fR19IwER0AA6v0RLi6wD6Pb1gMtFlvjybja44mvT0QQg 4SQ8lb6q3x28BEkczVfzQDjKXzGww3w== X-Received: by 2002:a17:902:e744:b0:2ca:bad4:33a2 with SMTP id d9443c01a7336-2cf348546cdmr202549465ad.11.1784615401534; Mon, 20 Jul 2026 23:30:01 -0700 (PDT) X-Received: by 2002:a17:902:e744:b0:2ca:bad4:33a2 with SMTP id d9443c01a7336-2cf348546cdmr202549065ad.11.1784615401018; Mon, 20 Jul 2026 23:30:01 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.29.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:30:00 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:03 +0530 Subject: [PATCH v5 6/9] arm64: dts: qcom: lemans: Enable CDSP cooling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-6-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=7881; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=cz7qH0fM/U0F9tsO23qklpcnKFFftVZvMQyY4O75Cu4=; b=zmGMMpy6VwOnDVnUQb3kWoVfvKaU8S9vxK++l6azzET5NXaFC9PJds+gdL/T9sKAehfycVynU L+pXz/hI+vjAq51MJHiRQPwDaLo+zOyNhTzODi1ixz8BhxBnCafH//b X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-ORIG-GUID: C2iHBySi5yAr4IrwMqMPytiy8CWdKXvC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX/89ayZkCBHkY EGR5yvmAl82AlqfTlY8oeQRxyvNw76AGbUt0zQxOgZPW5jdhhNuH//SEpZQE8x4yVsPxSvgDK44 zOF35sCfKKHyb1fYeS2bbCPRyh038n9Vc5+Xnrg6QRcu9/xIHOhRVkzBWQwGq3//5H2/rcMc20G SbT7cfw1At7tv799kw4Tzvmu7yZfNecYIhWZRTbiwPvqPppUGFLNjKRM9Evu2nKmL918PN+pNwa PRwBmhhP3UtGqdarQHx5/65nydC5+7HtNkVbTV15Zfhrwm80/Yyf5nKRp6KcaSywHmrz+uiK/Wc NtRxav0LAwGTtB8xi+EbDRBehWhedWKFgZzsBSzFTniITOu2DDgCXnvWJHWCV0R7GF9GOkibsUw 5NAwbYyKsRhL6xBBAHrZUl7fVlVpnxo6xdeaESwqVjNb6LM3cNiq+TBo/892/nvqbMyBtV+kOYR M5TDWQlUJKQZaRAPgxw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX+kNGTFKDWP/p +61xnKVtNV9rWT5ZCJg43J58wDw13mQHYGaqk57snPh89ZtoscnPB5qEriwAassuCbGbjqVhdGn 69aI6/kDLMfWmvLbB5KVqyzQZdwqkco= X-Authority-Analysis: v=2.4 cv=daawG3Xe c=1 sm=1 tr=0 ts=6a5f11ea cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=cnwIH0_uZE9cE6M6O2wA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: C2iHBySi5yAr4IrwMqMPytiy8CWdKXvC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 clxscore=1015 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 Unlike the CPU, the CDSP does not throttle its speed automatically when it reaches high temperatures in lemans. Set up CDSP cooling for both instances by throttling the cdsp, when it reaches 105=C2=B0C. Signed-off-by: Gaurav Kohli Reviewed-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/lemans.dtsi | 125 +++++++++++++++++++++++++++++++= ---- 1 file changed, 113 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qco= m/lemans.dtsi index 3b0539e27b51..2f7d4b1e4fdd 100644 --- a/arch/arm64/boot/dts/qcom/lemans.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi @@ -21,6 +21,7 @@ #include #include #include +#include #include =20 / { @@ -7773,6 +7774,8 @@ remoteproc_cdsp0: remoteproc@26300000 { qcom,smem-states =3D <&smp2p_cdsp0_out 0>; qcom,smem-state-names =3D "stop"; =20 + #cooling-cells =3D <3>; + status =3D "disabled"; =20 glink-edge { @@ -7912,6 +7915,8 @@ remoteproc_cdsp1: remoteproc@2a300000 { qcom,smem-states =3D <&smp2p_cdsp1_out 0>; qcom,smem-state-names =3D "stop"; =20 + #cooling-cells =3D <3>; + status =3D "disabled"; =20 glink-edge { @@ -8760,7 +8765,7 @@ nsp-0-0-0-thermal { thermal-sensors =3D <&tsens2 5>; =20 trips { - trip-point0 { + nsp_0_0_0_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -8772,6 +8777,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_0_0_alert0>; + cooling-device =3D <&remoteproc_cdsp0 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-1-0-thermal { @@ -8780,7 +8793,7 @@ nsp-0-1-0-thermal { thermal-sensors =3D <&tsens2 6>; =20 trips { - trip-point0 { + nsp_0_1_0_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -8792,6 +8805,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_1_0_alert0>; + cooling-device =3D <&remoteproc_cdsp0 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-2-0-thermal { @@ -8800,7 +8821,7 @@ nsp-0-2-0-thermal { thermal-sensors =3D <&tsens2 7>; =20 trips { - trip-point0 { + nsp_0_2_0_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -8812,6 +8833,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_2_0_alert0>; + cooling-device =3D <&remoteproc_cdsp0 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-1-0-0-thermal { @@ -8820,7 +8849,7 @@ nsp-1-0-0-thermal { thermal-sensors =3D <&tsens2 8>; =20 trips { - trip-point0 { + nsp_1_0_0_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -8832,6 +8861,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_1_0_0_alert0>; + cooling-device =3D <&remoteproc_cdsp1 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-1-1-0-thermal { @@ -8840,7 +8877,7 @@ nsp-1-1-0-thermal { thermal-sensors =3D <&tsens2 9>; =20 trips { - trip-point0 { + nsp_1_1_0_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -8852,6 +8889,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_1_1_0_alert0>; + cooling-device =3D <&remoteproc_cdsp1 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-1-2-0-thermal { @@ -8860,7 +8905,7 @@ nsp-1-2-0-thermal { thermal-sensors =3D <&tsens2 10>; =20 trips { - trip-point0 { + nsp_1_2_0_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -8872,6 +8917,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_1_2_0_alert0>; + cooling-device =3D <&remoteproc_cdsp1 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 ddrss-0-thermal { @@ -9014,7 +9067,7 @@ nsp-0-0-1-thermal { thermal-sensors =3D <&tsens3 5>; =20 trips { - trip-point0 { + nsp_0_0_1_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -9026,6 +9079,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_0_1_alert0>; + cooling-device =3D <&remoteproc_cdsp0 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-1-1-thermal { @@ -9034,7 +9095,7 @@ nsp-0-1-1-thermal { thermal-sensors =3D <&tsens3 6>; =20 trips { - trip-point0 { + nsp_0_1_1_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -9046,6 +9107,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_1_1_alert0>; + cooling-device =3D <&remoteproc_cdsp0 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-2-1-thermal { @@ -9054,7 +9123,7 @@ nsp-0-2-1-thermal { thermal-sensors =3D <&tsens3 7>; =20 trips { - trip-point0 { + nsp_0_2_1_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -9066,6 +9135,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_2_1_alert0>; + cooling-device =3D <&remoteproc_cdsp0 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-1-0-1-thermal { @@ -9074,7 +9151,7 @@ nsp-1-0-1-thermal { thermal-sensors =3D <&tsens3 8>; =20 trips { - trip-point0 { + nsp_1_0_1_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -9086,6 +9163,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_1_0_1_alert0>; + cooling-device =3D <&remoteproc_cdsp1 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-1-1-1-thermal { @@ -9094,7 +9179,7 @@ nsp-1-1-1-thermal { thermal-sensors =3D <&tsens3 9>; =20 trips { - trip-point0 { + nsp_1_1_1_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -9106,6 +9191,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_1_1_1_alert0>; + cooling-device =3D <&remoteproc_cdsp1 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-1-2-1-thermal { @@ -9114,7 +9207,7 @@ nsp-1-2-1-thermal { thermal-sensors =3D <&tsens3 10>; =20 trips { - trip-point0 { + nsp_1_2_1_alert0: trip-point0 { temperature =3D <105000>; hysteresis =3D <5000>; type =3D "passive"; @@ -9126,6 +9219,14 @@ trip-point1 { type =3D "passive"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_1_2_1_alert0>; + cooling-device =3D <&remoteproc_cdsp1 QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 ddrss-1-thermal { --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DAF103C4B93 for ; Tue, 21 Jul 2026 06:30:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615413; cv=none; b=ZrwCnT6V6w13R9x4DJeIG4cd5XKjl7ofYQqtLhPx6KQ1NFkzOH+o/CE1zeHLIIU8g46zjzy7IrBjK24v5PRebDFdGrdzIvLoRpdhYrX6g8LQTPt7LM1FgRzCai7JR2q8BKyU7vHP2nZTXJzCUWCMliDr8qSD+VR6nIsnd2jS4bI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615413; c=relaxed/simple; bh=8umcBmnbaWPKhT/bCG/xlVEirctwHTcqHHN3lc7dKzw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D2yr2dywAhiU/L+fp68fcWw85DiAfdCObXLqaheVov32/tbjQ+MNPbRShZZ54xDsVaQdaW2NcyqI9phFSND8W1XkahjDijFQcsR46Z9kWttYRoqqInaBQ2YJCIamgV8rmME0JtJv6RgYh6IHL3TkmRd2/2b39Cj2ma7jfBv0Sso= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SyI3pMRc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LUXEOdls; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SyI3pMRc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LUXEOdls" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L4038N569822 for ; Tue, 21 Jul 2026 06:30:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jRIQaH4oh+X5ecber9l1165X794PX07S/SROCQzKFfo=; b=SyI3pMRcr5Zdxb5S RE1lIgZ2Gi0iYF2e8bNtSh+7abPp5iFao00BUlPL6HjrxVqelAQubcFkI6dnFQKP IGJUo7S0X8iHxLov1CV1AGPRDahZqSdZX1y6SGaodFt8qxFzIMAbQiywp4bC7c/P BUOjQdNgWT15Jw4XXWcTu0OgjJN1x/5pld5b673THARMkjtge0wsgm4C0vgRHM1J /pH1n5UvZkFmmKccK925RXQCsAtBVx8qCtjcj2o2Fd2oC2HvnJPu7I9Gh4+S/xi+ YMPClwHzKjDR8t6BkmN2VVL0r9r8Qtn2g4LanCqZvOtXT2fTOwptDMCxFVztgGXY /BEjOg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fj1bvrgf0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:30:09 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cc5faecf01so216824875ad.1 for ; Mon, 20 Jul 2026 23:30:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615408; x=1785220208; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=jRIQaH4oh+X5ecber9l1165X794PX07S/SROCQzKFfo=; b=LUXEOdlsC+DkO6EVm7P/uazw/IvpDurvtOixceOD6sgn5t1yq1A32FQZwawuS10qZV VN2YLYA+XRY4PLUtsbV2B1z7S5GMClzskqi/B7z9yCy0yeBZR8TKotV9dpoudS6RKl30 AO4n9cRigYWCNRtFfOsAoslsvyaoVPh6ZWr9l4hWrwU7UJy7mg88kcX5P5iD+itHr+WM jRi1sZb0ly/63fphXdUazN2cuuRqxZKQQT97mwpQuLkVqjjSbOQkyrtJhL4RjB6pddeV ZB9l5lW62T/2HZPj3gGYidk4xvjAmbct2lPfDCZ8x5B7C6lIoKUeooXef6gpKAI613Z1 SnBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615408; x=1785220208; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=jRIQaH4oh+X5ecber9l1165X794PX07S/SROCQzKFfo=; b=fqX8U42sxdVbJkxJJHjaKoD4HY4slz8V9AIkEiXM98ucE9EcAEZPSGHtfR4Sa6aSIG aAv5aNCZrKbX82HUJAfz3a7SeizoTaciKxfB3ZZD21DkB5/zG/Wyx+z4pimVgZ/aAK+e DhrUzECoKmo5ODel45Uit1oyXR8mCpylfPdxliByljB4/HGv3g250LWyaOZJhi6ao+T3 t4w7suqRQerjv3PX9NE0qPySKO6FJJvf680wAq8NTkYdgDTpaDhe9S7wnVooUy/DzhGW HaSJvGr9ApkR2DxI/HKAH5/vX9LlPO9eyyrh1syVrAEzS6yPBpWaj69b5iH67HP20wQZ 4uZA== X-Forwarded-Encrypted: i=1; AHgh+Rqll/JbBuU5Y0kJoKsNmOvB2w3+Dudyd4zl9JGpiuDe+070CXDA5+Mmyn93UoxbchHtvmcDkAKpc0uNUso=@vger.kernel.org X-Gm-Message-State: AOJu0YzK+Fyyh0jAuXahs8pxrLmomG5T+YyDPBm2uOvbrXTnHwQRcUhQ 5/6HI+v5WhAUyNGJPmtRUGYQXiPWBpN6Ug9Xxu1TxDJ5EUa/so4moUrnRXK+6gSW/dQP030Yceo fA/rx3mOqYQMxvEag+q1R+UiM6pbnE3QN11X0YqVlrZmkwVFXDxzxorK44HGJGS06dl0= X-Gm-Gg: AR+sD127YSw3esCehnZCsSWVjoUbZVlCpWM8ix2hbloBJfm3Jwb15cuNiwR3u35k4i9 fjNmlc9r7qCX0Pk24ZEqivDld38M2YTIh7TGjD9GJ/+d54RRjZRWQ50qooO7e4WgDA/hqPxB9Ro 0qNbtCdqGsjx97ipTv6h+PoxUD8pPcfCnq9nNaS5YVLvrGb1ZqKyWBSPXLfucWuDeUcLRQANtRA xiK7/UWXmKLZBA2KKKC1nVRUVHJaPz1ygswa+wZvWXL5RHcxJeM18lpEIjEfU/xyXh5C6NiOipP ucLBAG2Xj7U2zDVYoIvHfZJBvN0xIzbBniSHY7aIG0OrHRNIDdlgactMIDfAS1xGSJcCFrRF5GW ewkU5KNQBXnCX28qb/5sBg5qyyKx+6w== X-Received: by 2002:a17:902:f689:b0:2c7:f4bd:91b5 with SMTP id d9443c01a7336-2cf3462c08amr192048215ad.0.1784615408504; Mon, 20 Jul 2026 23:30:08 -0700 (PDT) X-Received: by 2002:a17:902:f689:b0:2c7:f4bd:91b5 with SMTP id d9443c01a7336-2cf3462c08amr192047835ad.0.1784615408049; Mon, 20 Jul 2026 23:30:08 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.30.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:30:07 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:04 +0530 Subject: [PATCH v5 7/9] arm64: dts: qcom: talos: Enable CDSP cooling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-7-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=1868; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=8umcBmnbaWPKhT/bCG/xlVEirctwHTcqHHN3lc7dKzw=; b=NEITjm7oqR+Rh45ak+Iz8YUMOCtw/iYGUukbUqFDiWOiCZIe3dlEL5M+xkQw/uHW/BIvDd0dB dokIFQIDjqlBZwJdtsjzg61dqbvcuXo2uSVHCzGtbbOsbMfEd5bA5fq X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-ORIG-GUID: 04qkzW99OZwI5J8sVKxxsEIrwcuKqqna X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfXzbZhf0ctSGri upQlygTCMau0OQXsHahL6vvkuGI+zgk9TEhe8Nf9rIWmbAB3aNa85a1RIKmvrt01FAe8y0fSWnp J7dUftQFRhCBeicqu9jNwQXnDDiNByg= X-Proofpoint-GUID: 04qkzW99OZwI5J8sVKxxsEIrwcuKqqna X-Authority-Analysis: v=2.4 cv=Sb7HsPRu c=1 sm=1 tr=0 ts=6a5f11f1 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=ptpooaJMTZRctn2qr1AA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfXzV6Kd72KRsQd OjjlJenTOlTzpQDjBetuoahJxJbUjjEn1eXghfK7oTSEYf93dQ2fL2Q+vgHfd80JYmlEOanQT7D a1W3ficjzNM9SfHeaMNkm0sjZLIxpqRIEK8+KrcZU5oTZb/ea5tiSwqSwEAgJDFmi76JdsLJhCk XDdZ5wdmWydTDZQn61CMoC1UiXugz+RRp6apM58e0pmnMjoCh1Sz3V72WtI4myFG7f1qPAjK3y0 3J/kpoMLO1xONy30gq0aHWD/Mes24Lv2I4Xc4iP2rV+4H5vrufrXoFQgUJeucWUCunH3nQnlQXt ok020Ll/mFBEhSPN+SsBNbUbuVN4zlOfHeSU7NnOYAGtGJG7bZx2aPW8L8pW90+HtSkAuodRfTb l13myJMBvrQFe/YrEPtoTQpwv6UCcP7H2YOvJ8T7k+SeI6yLUJSQLn3RMJzj9VGlRzcD0ODxs3w uOinQHQq/1rb5qG/YBg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 Unlike the CPU, the CDSP does not throttle its speed automatically when it reaches high temperatures in talos. Set up CDSP cooling by throttling the cdsp, when it reaches 105=C2=B0C. Add polling-delay-passive so the governor periodically evaluates the zone during passive cooling and steps up cooling levels when temperature stabilizes below the next trip. Signed-off-by: Gaurav Kohli Reviewed-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/talos.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom= /talos.dtsi index bdfb70ca9740..5602448f0e42 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -21,6 +21,7 @@ #include #include #include +#include #include =20 / { @@ -3840,6 +3841,8 @@ remoteproc_cdsp: remoteproc@8300000 { qcom,smem-states =3D <&cdsp_smp2p_out 0>; qcom,smem-state-names =3D "stop"; =20 + #cooling-cells =3D <3>; + status =3D "disabled"; =20 glink-edge { @@ -5497,15 +5500,31 @@ map0 { }; =20 q6-hvx-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens0 10>; =20 trips { + q6_hvx_alert0: trip-point0 { + temperature =3D <105000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + q6-hvx-critical { temperature =3D <115000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&q6_hvx_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 mdm-core-thermal { --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 124F63AB48F for ; Tue, 21 Jul 2026 06:30:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615418; cv=none; b=Rm3LtyVF3gd5Sf1yZm21sZiY6+wvDL6uP1iMMa+e3N8CV//BCNcS2+dLpxniydotP0dMvxiQNH+DqRe0n92Lj1ElxBUspJNEJSUqWkG+fUFMVl7WDs0iETHrF8MW858Acukibs5zRO8elJyzbG7ULcqjR/+XDssFG1kR5wMzhnw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615418; c=relaxed/simple; bh=/XGaEx/WlMFIsBwdLtdXEKKSzLHpI+liCqwpIwdMBQc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FVNPWOEr1cg8q7mDU11Mxx/3bnksc/rNNMIJOMm1n3E0KLTEru0awIog2knvzOEDQBYbDNoKDQN86JqF0CBJLt/LV17wP4zi6Y+ZpFt+40a3BJLuMI2Yt+cpqpQsV3u55tz255wd7omaDUCcuX9ZZp05sLt6Xdb+7s/9XPj3DuY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=OsYv2bsI; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Fvs9XNyy; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="OsYv2bsI"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Fvs9XNyy" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L6FqPN4107084 for ; Tue, 21 Jul 2026 06:30:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /v2pLS9vuueRYHFLtQoSMHRM+1vbkZrHQovIOvP6imo=; b=OsYv2bsIE7bbemxd QOQd+pnKAMJgBU+FMRH09K2Q72fHbWMOKd/pC5QM06lV5MYF6Ddi7XSy1QkRwMUo jEFhvM5VY3BvTjSPHMBmkXAD/nKWsCIJsY5x8tC44uQS+QUx2whqeE8Slqaol5Yq u2s6dG2TpcL3k8PiS7sbZH2g03KBmPle/hBgVB2FUAkh8QQoojWZwRb9PI5X0XwZ 8JizrL15jINhN5oAuvhArOioHZgdZDS2rDdhKymMiDrGMlVeLTWJ8NOqoK2N/De1 uJAAFZnyojxW3TeeQDqKDIPtdV4hTtRhjq+YIzasekanztkEwWreqnj5HrdeiDwZ wa6OpA== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhvqn9g75-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:30:16 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cee894b3d8so144057475ad.2 for ; Mon, 20 Jul 2026 23:30:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615416; x=1785220216; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/v2pLS9vuueRYHFLtQoSMHRM+1vbkZrHQovIOvP6imo=; b=Fvs9XNyyQ997zW6kNNLJVSR+evdtxXSzCYqc+d4AP7wQoCj1GpkbhCvP3zmi+Dk3S7 9UM+a20hRPdsxc4DH4IVWvKF7hSyKGEMxzhTaRTFbIgB2UkwD/ES/jR+1cDTocDbWPDt k/m8jqhnXKJxXOeg8VBrMVyvAQGd/Dm2VAAZaojLdW3je2WBEyvLZCKuYK1OWC2F/eQT SbJD+rZgiE6/lEKfvu1v7XiFIeFA4mn13XHvY9Paor3tb3jySGvhfy3LjIgjCI7VlgFt gY0RuSRwhjrEpaRDu45oNzUHXqDdTSR9Lq0uUXZmxwMG//4s6rFZS6rLnTUe5WPRa3hs YRiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615416; x=1785220216; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/v2pLS9vuueRYHFLtQoSMHRM+1vbkZrHQovIOvP6imo=; b=Ewo5bkeRlH3Zgy/lvXKYIBoaUpIx9oAwEBaBezQPSeqSGJZ2g5YDwgER/O6E7xxfNd 6npKBfhme2jnHn6+YvC91gcC3kDYt9lp5Yzdg+uKe9Qlnczw7yy6Pafy8AxvQvsIlrcd YyuUEQ4vHZOzUbkVTB0UdoBXtPBvrIDzNABB30sLJfkfm5TboCdkoR8/GBEPD2DWy8l/ 50LeCeR3nU5Xaq34Au+HA1C2PGKa15AuYT2bWeFN1AIbKZ3rMTHn3k4mjrL7YHlo1uhK bybNNVUpS0TKkHuqTvxvvBUvAfpu/UfO2sRxhXHdeo+bqafc/tXCQ0qLz+eZ2Vrp+LD4 8Wsw== X-Forwarded-Encrypted: i=1; AHgh+Rq9TUVyl6rkohxLu3OmGa5BGQAWms0IkfX0a4G093dyRFFOKRZ3OEYyfiU0fbrjWGUGeEjqGShcWjTfMdM=@vger.kernel.org X-Gm-Message-State: AOJu0YwA+VtjGPSZvKkziLAyu1AVT4WgE69w6+dQWcbmTUaUzzRAkHCk f5wZHzdpdRszkJrX7lu2GLeOuKAFL+2loNxaSUZ6HFmY+G/5m0d9gK2uMyxeRIcukQZkK5OdHjv AAngywqEfRy95FXqAbgS7QQ/uTpE+A3VHB4bv7EM6hdzfScRnnmfCPCXVCI4Q9yM8/lM= X-Gm-Gg: AR+sD11IRD3aLfQaV5EueOJNyhzDLkkbyWghTWr4UtkP4roC2MiBX+CejO+YDqFcIv3 ecLveV2OwTsgRNr+j+RVWYWYdu06lRO+9jUXDJrZRD8ugIUGo79gRZsg3Nwlg7DIYzEEGbCynTW egGvH/O9lDzhpep/CUudWxa2qnHIFNDQlE8AFLd293wkWKXVINXObMuXdgDi6c4bbLetuY0VbwF jZoRuJDxO87IdIIbpO0rBYb+CV8DYDa+OCzDSb7lGQp6pMXIcYmDkq+Dm7guL4/cqH/KBpbNmnM d91kMlDA2f20i7FxFf6r4buEJcGb5VTa3YesI35hIKl5fR+r7rtLUlHKEeOH3/A0XCvGHj8mKpR vhTnw2H4kzGF7jOkHN8qpn5Nwb0553w== X-Received: by 2002:a17:903:8c8:b0:2ce:e75f:b713 with SMTP id d9443c01a7336-2cf349640f3mr176100475ad.23.1784615415533; Mon, 20 Jul 2026 23:30:15 -0700 (PDT) X-Received: by 2002:a17:903:8c8:b0:2ce:e75f:b713 with SMTP id d9443c01a7336-2cf349640f3mr176100025ad.23.1784615415106; Mon, 20 Jul 2026 23:30:15 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.30.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:30:14 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:05 +0530 Subject: [PATCH v5 8/9] arm64: dts: qcom: monaco: Enable CDSP cooling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-8-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=4882; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=/XGaEx/WlMFIsBwdLtdXEKKSzLHpI+liCqwpIwdMBQc=; b=dbjn5kugB4slamt/ESErO+iU/NTJKDYUhz1yFloFURfbXK2PGggxHi/EQ31n8reQybBZGeHGj jiyR/FoWkENDWUZyZSOXIjEFYNaPQ3rzAdLjrknuVzkQpeoGZztUwuV X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX1etynrlzlBj4 1EOLO8sWfR54aWAXLmkKr/cgRmG6ELLj2WYG7UUZNjHabdER0pEdA94z+FQk2nSCP/PO8pd771x tBe2Ru2eSZkBuDu6f11eRRwWNNaNurWbqdNxh3aXQQTQ9pa11eqsBVDKsjkpbOFPkH9OPclYqB+ lXrGFB8m0JwCht3aGxqsv3CeK1zd0o3pY/zlJ0oKgfd6/TmZ8acZr/goQsjrTCmI7zWnlxyFXIY Imm/wOK5YZV1zakobITro6tDK5UTuHxVF0G3tPBAAF6y2qLjQ/Ayxo8uDP582ypC0xiwoBeCVSq 1Y6xiGp6Pry3da5VW8/0DrLQkmJB6iAOO3Nxid3pmgGu3RJXf6KRc20ce78UuVJM8gkIG/4T8q0 w4RJDmAoqwf4lMdCdzIUAK8NwX2U5TQwFPNh2bD0XLbT0G0K5mswfY01Gmq38+U4vJG8+iTJzkS nh7KPcCnfGXfnD3tHvA== X-Proofpoint-ORIG-GUID: J2JtJ1s7KJ-TIHa8AYdy0sHvFOFAFUop X-Proofpoint-GUID: J2JtJ1s7KJ-TIHa8AYdy0sHvFOFAFUop X-Authority-Analysis: v=2.4 cv=M5F97Sws c=1 sm=1 tr=0 ts=6a5f11f8 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=ND7YSEQ52W-Uskv0B9cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfXyjKUHI5TZxYS GMDn9kekzypupgqv3rqVTGUuLhyNXER/rUHkzCmszFXo3xUlqFgYoUrYDY//+DaSHaJ4NOca+39 Bd6jCXL0DIyaF900fIMOpKxTWgFtPz0= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 Unlike the CPU, the CDSP does not throttle its speed automatically when it reaches high temperatures in monaco. Set up CDSP cooling for both instances by throttling the cdsp, when it reaches 115=C2=B0C. Add polling-delay-passive so the governor periodically evaluates the zone during passive cooling and steps up cooling levels when temperature stabilizes below the next trip. Signed-off-by: Gaurav Kohli Reviewed-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/monaco.dtsi | 99 ++++++++++++++++++++++++++++++++= ++++ 1 file changed, 99 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qco= m/monaco.dtsi index 64fc0d592282..cf30939b4cbb 100644 --- a/arch/arm64/boot/dts/qcom/monaco.dtsi +++ b/arch/arm64/boot/dts/qcom/monaco.dtsi @@ -22,6 +22,7 @@ #include #include #include +#include #include =20 / { @@ -7738,6 +7739,8 @@ remoteproc_cdsp: remoteproc@26300000 { qcom,smem-states =3D <&smp2p_cdsp_out 0>; qcom,smem-state-names =3D "stop"; =20 + #cooling-cells =3D <3>; + status =3D "disabled"; =20 glink-edge { @@ -8170,39 +8173,87 @@ cpu-critical { }; =20 nsp-0-0-0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens2 5>; =20 trips { + nsp_0_0_0_alert0: trip-point0 { + temperature =3D <115000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp-critical { temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_0_0_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-1-0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens2 6>; =20 trips { + nsp_0_1_0_alert0: trip-point0 { + temperature =3D <115000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp-critical { temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_1_0_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-2-0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens2 7>; =20 trips { + nsp_0_2_0_alert0: trip-point0 { + temperature =3D <115000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp-critical { temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_2_0_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 ddrss-0-thermal { @@ -8290,39 +8341,87 @@ cpu-critical { }; =20 nsp-0-0-1-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens3 5>; =20 trips { + nsp_0_0_1_alert0: trip-point0 { + temperature =3D <115000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp-critical { temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_0_1_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-1-1-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens3 6>; =20 trips { + nsp_0_1_1_alert0: trip-point0 { + temperature =3D <115000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp-critical { temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_1_1_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 nsp-0-2-1-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens3 7>; =20 trips { + nsp_0_2_1_alert0: trip-point0 { + temperature =3D <115000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp-critical { temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp_0_2_1_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 ddrss-1-thermal { --=20 2.34.1 From nobody Sat Jul 25 01:40:45 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9126540926E for ; Tue, 21 Jul 2026 06:30:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615425; cv=none; b=G7iat8lB7yVUME4/xkF0xXWgXO91UdbhR29b4tD2thS5IlZgfKTb7HDthHcwLOaxKxY3XyereRKkIZhJ7wP0KdAbFnNgNVgZ6N0Dh8nIM/2LeyPxuTd1IjBL969JNnmUjTHr8FcTIOGh51P4D0p52V0XIm+O+/yKDHnkz0KYSj4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784615425; c=relaxed/simple; bh=BdOGIxXE1ok1M7rUKEyOuOmZ0r5JcuZo3GwQBeFxMcs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MbanGY3XgoEFUFKs4twVOX1RtpztnW8O8/J3KiPUDzi/EKST1eb+qx5+8GapEpE7JIeN73HvXWPV+LYRtvSPOY7SFarY96BWJrS5qWoY6C7GVHKhWQv2WDiZU6f3ZIcKWb+HbiTKwM2nWjMID0jj4nOq05MRml6ifCppjSbBnC4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=KoMdMCyY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZjdC2xLg; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="KoMdMCyY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZjdC2xLg" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66L2TJ2L092429 for ; Tue, 21 Jul 2026 06:30:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Eeo9wzBCTc2KKAgmnmcaGHN5cU9PGYzocvT1y4OmbYk=; b=KoMdMCyYP41MKpaO WK8XO2sKNowMi0eXQy20wwDkjKUhY8yiGb1juyHsH0wM4J29uHl+NMCNfielVSp+ FjHXq+FMK71J9fHCZCIeLHG4v8K0hLXfR+FXr/8pLfVYMJ4M04OR4afHTTcQPkx2 zppDQyunaf6ScOqmjTMzGT9E0OUzPcPhvOVU5FP+362TPKRZvBvr3GLmuQ0SovX8 ZhgjO7b/trnRB6zli4cJrDYor90SOw8D0xIuezercdo2vEgO30lqz5LIub3s8bfC j4/tb6jhLlsH0CJG6b4kTDDj+L5GFkrGhm1kuTZT4xNV2YZAqcDPoSlhXACDs+ga nVVNaw== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fj01a8v4u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 21 Jul 2026 06:30:23 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38e11baa66eso8156217a91.2 for ; Mon, 20 Jul 2026 23:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784615423; x=1785220223; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Eeo9wzBCTc2KKAgmnmcaGHN5cU9PGYzocvT1y4OmbYk=; b=ZjdC2xLg84vbToBh71l9JWzceqoOI2CiQccDPLcCMaUObQohHyCRguSR1GZ4tWojRD blvt7dGtEaEav0J1bRQqo1Dv22xtNRgBeTsW3MNuML2vWchrMbmq+b3gabesE69U3gbZ 9o+ZuiqEMr0jhszMTtw1HDxOrrcajHIXNQJ1+SqJQFKh7UdUoUMW9pZZOfsfni9d1Cp4 TtO0GDrYJAq0zQgoq39m1IzX1Dk2g/6pfxpY4kjucFGEIZvSZvrdoNAY8b92RmGZZXLg TAwOanZDYLCu/DaSwAEk/TRt3eA/vRGKLDtfCDrC3+Jwwk3XNkRFFnZWqU+3lckaxMq4 Sdqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784615423; x=1785220223; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Eeo9wzBCTc2KKAgmnmcaGHN5cU9PGYzocvT1y4OmbYk=; b=LLxfWdwoKFoLD1cTleO7jXy8AkR2wwDEU/gfoDnNU5HMevbxczN1vrZspUHl0KqVFC TuTAkp+ychIy2cZgYz30zY9AdzYV7hfaXnzAxo+/9bOFYILjN0JV5tBXnvC+DpPoJ1dD k8C6oaAUB/B56/okjZcMgiLrGR74aY+0XZCPNJwSTluj74hAo8KdQe2hk8co6fBK3ZSr 1zK+gtoVYxrCxW7QYXL1mrCvLvYpaFq1BH9+AUK6u2sxaPoWjKnn3KnL0Vl2ViZgq4wW sneOA3q08oOy+P3a+6XhdvpfJI/nn5NNU8+7BxX/msIpPqHAoFCtC7Ns5LQPNRsKWxRl qBVA== X-Forwarded-Encrypted: i=1; AHgh+Rqjq7ED/doecDY0P80y+fOftvGc32Dyw5O7F0N8zBiF9INbe2T540iod8xhzh6YY9RwedLTr6QMKqh7S0w=@vger.kernel.org X-Gm-Message-State: AOJu0YzMJQsm9dxk4QI69vbVZiqbNiusoJEbTRpRd/lwRyliGaoZMwQo qFI+3Tomo46g61Kpwn8mIzEBGtvZ4+58YuHpPEbz+EuM6W3C3wlrsrDZJF6N7GGFbQsGwnIWKKe 3aVYFeqT2Wc6XB8QTXPoo78WbCRzgDKknjfxY2xVoAyn89VhAhkH01kyKqVCOOFhGPDQ= X-Gm-Gg: AR+sD10HpJPgi6n6zaniAwUPKeNjXb4JlAGWhtO34u/Odtagne5ehbv/hlnAUuUbk70 VOIXoe7BjlOq4ree2xeA6Gn/Yxcf2i0eryNtG1WQf85SgChOve8883RuY7IxjRiVWtUpbnks/aG RtkFEm0MDNGMk2sitSTDhqmr3QM7nGIejJ3Mx3f92r6Z4aoWLsNg+T8XA9BV63rQ9yG7O0f9ZgP 62dGAO3cf/6pjeijeyt3KO2GJlWpzTBIp/zMjPym5+/EkbO+RK4Bp/8p6FuLoyncO6mpsLaWABB 6VqEpA48FHvFScDJO3IfgF1tKNSLSX4j297PT4IHVVh5zLsGHWy5R60fQrbngOyBrKh/aB58oDI 7+o61ujsCtfsODouglfymKtj/xARz/g== X-Received: by 2002:a17:902:f681:b0:2ca:3e3f:4956 with SMTP id d9443c01a7336-2cf34a35445mr184691435ad.44.1784615422952; Mon, 20 Jul 2026 23:30:22 -0700 (PDT) X-Received: by 2002:a17:902:f681:b0:2ca:3e3f:4956 with SMTP id d9443c01a7336-2cf34a35445mr184690785ad.44.1784615422474; Mon, 20 Jul 2026 23:30:22 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf347a1201sm69376505ad.81.2026.07.20.23.30.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 23:30:21 -0700 (PDT) From: Gaurav Kohli Date: Tue, 21 Jul 2026 11:59:06 +0530 Subject: [PATCH v5 9/9] arm64: dts: qcom: hamoa: Enable CDSP cooling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-b4-qmi-tmd-v5-9-99620e07f505@oss.qualcomm.com> References: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> In-Reply-To: <20260721-b4-qmi-tmd-v5-0-99620e07f505@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Lezcano , Amit Kucheria , Konrad Dybcio , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Manivannan Sadhasivam , Gaurav Kohli , Kees Cook , "Gustavo A. R. Silva" , cros-qcom-dts-watchers@chromium.org Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-hardening@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com, Dipa Ramesh Mantre X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784615351; l=4746; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=M1kNcKjXMHABpQwGFH7f4z1gi75XzuHKDuRCrq5y1KA=; b=zWznmChXwH1a+Xy7CXqvwB+2v/B4Jsj/DTEzvL/4/G8fijhQpVOkLGUcQfVbc7hDqK5MGpe24 xDrl1l1OhnfCtcjZOhoJnblsDq6uaT+dVjZoffokDQX/OX8wuHrGEke X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Authority-Analysis: v=2.4 cv=BL6DalQG c=1 sm=1 tr=0 ts=6a5f11ff cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=ND7YSEQ52W-Uskv0B9cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX+CIlx3kbJ3ML 7eImBpwqiSfLUibWw7KGmXdg5IyGQG8DzogbRk2ExC6rsC5a6U/SLiqCi3IdsZfE8D3rH8OIaKx 6HMP1x0RC9G2ee/H/FXaGnjJqT4pHDBQt7N1sWky9P09A1DFpH3fT40AW81LNqpJ0qej33StWSt HOD9dYfdKrQzHt9d9hCq+mzjG1K2PwPEKWPQf7eKSeL/wcMya52BmoeN8DaGegpKWED7A1Lu33V er7IKmZImuFE5VxqyUysxH19Y0AfdBxDAtf4xn2b3mJqvbtwj9DXwJT66iN0K1N9A/BKbVDiP8u cmIllJ+6OjT0a95VribDqdFeU0LPADE9Rfgk1xy19LllOHGU6sBdNkWm4VyVQyUKyJySwc6Ix05 Hnvzb8I2vbfk/zGxF2aR6vpynMj19mwuQ0RBnIw3Y3xmsrNyZ9LCn9w4UHCITH62Nl7/oWDGuBM 1JtE7GR6B10uPKKo9ew== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIxMDA2NSBTYWx0ZWRfX3lpk7islbCyF 2Tpr0NsRGMnkUwCEznxqHZ3sXirOsb33a+BzJCpL5qDfyzuPTQ6wA+jwSYdbd+WZ3EKEufu0JQL 1EYJbFtVFa6Ouq+RbJ6dJDgf2Y9Jyyg= X-Proofpoint-ORIG-GUID: oYWIcRMgxXwQ5KB8cTK4WBWNYemxIZuv X-Proofpoint-GUID: oYWIcRMgxXwQ5KB8cTK4WBWNYemxIZuv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_06,2026-07-20_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 malwarescore=0 suspectscore=0 adultscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607210065 From: Dipa Ramesh Mantre Unlike the CPU, the CDSP does not throttle its speed automatically when it reaches high temperatures in hamoa. Set up CDSP cooling for both instances by throttling the cdsp, when it reaches 95=C2=B0C. Add polling-delay-passive so the governor periodically evaluates the zone during passive cooling and steps up cooling levels when temperature stabilizes below the next trip. Signed-off-by: Dipa Ramesh Mantre Reviewed-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 32 +++++++++++++++ arch/arm64/boot/dts/qcom/hamoa.dtsi | 63 ++++++++++++++++++++++++++= ++++ 2 files changed, 95 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/d= ts/qcom/hamoa-iot-evk.dts index 9fa86bb6438e..a146be1cb5fb 100644 --- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts @@ -1684,4 +1684,36 @@ trip-point0 { }; }; }; + + nsp0-thermal { + trips { + trip-point1 { + temperature =3D <105000>; + }; + }; + }; + + nsp1-thermal { + trips { + trip-point1 { + temperature =3D <105000>; + }; + }; + }; + + nsp2-thermal { + trips { + trip-point1 { + temperature =3D <105000>; + }; + }; + }; + + nsp3-thermal { + trips { + trip-point1 { + temperature =3D <105000>; + }; + }; + }; }; diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom= /hamoa.dtsi index 09527dcf9576..a1f7c46f6c27 100644 --- a/arch/arm64/boot/dts/qcom/hamoa.dtsi +++ b/arch/arm64/boot/dts/qcom/hamoa.dtsi @@ -23,6 +23,7 @@ #include #include #include +#include #include =20 / { @@ -8971,6 +8972,8 @@ remoteproc_cdsp: remoteproc@32300000 { =20 status =3D "disabled"; =20 + #cooling-cells =3D <3>; + glink-edge { interrupts-extended =3D <&ipcc IPCC_CLIENT_CDSP IPCC_MPROC_SIGNAL_GLINK_QMP @@ -9558,6 +9561,7 @@ aoss0-critical { }; =20 thermal_nsp0: nsp0-thermal { + polling-delay-passive =3D <200>; thermal-sensors =3D <&tsens3 1>; =20 trips { @@ -9567,15 +9571,30 @@ trip-point0 { type =3D "hot"; }; =20 + nsp0_alert0: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp0-critical { temperature =3D <115000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp0_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 thermal_nsp1: nsp1-thermal { + polling-delay-passive =3D <200>; thermal-sensors =3D <&tsens3 2>; =20 trips { @@ -9585,15 +9604,30 @@ trip-point0 { type =3D "hot"; }; =20 + nsp1_alert0: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp1-critical { temperature =3D <115000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp1_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 thermal_nsp2: nsp2-thermal { + polling-delay-passive =3D <200>; thermal-sensors =3D <&tsens3 3>; =20 trips { @@ -9603,15 +9637,30 @@ trip-point0 { type =3D "hot"; }; =20 + nsp2_alert0: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp2-critical { temperature =3D <115000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp2_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 thermal_nsp3: nsp3-thermal { + polling-delay-passive =3D <200>; thermal-sensors =3D <&tsens3 4>; =20 trips { @@ -9621,12 +9670,26 @@ trip-point0 { type =3D "hot"; }; =20 + nsp3_alert0: trip-point1 { + temperature =3D <95000>; + hysteresis =3D <5000>; + type =3D "passive"; + }; + nsp3-critical { temperature =3D <115000>; hysteresis =3D <1000>; type =3D "critical"; }; }; + + cooling-maps { + map0 { + trip =3D <&nsp3_alert0>; + cooling-device =3D <&remoteproc_cdsp QCOM_TMD_CDSP_SW + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 thermal_gpuss_0: gpuss-0-thermal { --=20 2.34.1