From nobody Tue Sep 29 09:48:17 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 BD92A35893 for ; Sun, 9 Aug 2026 12:30:16 +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=1786278618; cv=none; b=mB0tmvWLfi6wdviSf50puDHLD4YsvasiFBRfT2tvraWP1a970/AREGpi8gpSznBfIsHnsw6ufAnCMIHCIZ98z6+Xp5OCoajhdgVdjxZ2qMbu5g/0koHZmj2+RatSoJq8dkTlmbH71iDR2ZJ4PkCfGEOWotNIYhD0kU2GwQV7ISE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278618; c=relaxed/simple; bh=8e68S3J41m5lUfAd9CmgbUyj3eqYXTOESXQP5hoz9rA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XCHIIdxIPnVoUs5eYAPcMYhVJ7+uOrISzsS3X96z+M1vUFvAQ9GqxCgaqAp2LqcLP6HszOGB6GSk5FSbf7NHjwjAOeWwhRtDiQl4vHxHDlyHRlVhPL10eTq+HPEnVqEoyBOdcgWab7V/4eEhrMCc2uRGO8Q0Kpew701tpwQNvFg= 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=ddV6mCSH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kKcUG6JP; 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="ddV6mCSH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kKcUG6JP" 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 679C2uSp2986142 for ; Sun, 9 Aug 2026 12:30:15 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= M96SxvkGRMZ7Xi+w8uZL4LF/+V8cVooMvtAQ+Mr6Kmc=; b=ddV6mCSHSOcffW6T m5Ed7YDpGFWNnJy99+8Jpr0kB7y8ALNHQGh6K/pib36Hu7tNvXh7xL1/2218mJDW KCEr6Axox9jOvKVVovRtvhviMXsUSlrx5Xthe4L6IJgey9WoLL5dfpuzvCvcitT3 AdAuEpGItMKspv/SSsbUWIR59InHHdgZSFLeED0mK669rNmR0hIx2oGF6l3gtUlF koWCD3wJZJZBQncrDgN6kSZn2UQqciQS9+c7Ih8knpGFsJWzEaD+XHcDP94gLgOp wxgfVBu5vXOK/rKCbVih6qEH/NQ8MjeNLd+cis6uRCYya1gxahYgFcbPXGLCSUeH /Q0EZg== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwv1yawaw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:30:15 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-cb11535e6a1so839650a12.0 for ; Sun, 09 Aug 2026 05:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278614; x=1786883414; 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=M96SxvkGRMZ7Xi+w8uZL4LF/+V8cVooMvtAQ+Mr6Kmc=; b=kKcUG6JPdFNzeexpaUBhLMfK+noUhSmAErDqVYbJ24G9wgQzcJPSFAYMjcqQL++sOH 76nFSc81hFKInEtUzVMceVDVG3PkniSkOD6CR5a/3MBvHqp00+iW5n59qeblGAi9qD0U mVGWCLj/hdPQNxCea7CdiVHtHFzI6DOQIr/RV5SnD5cC1me7dfia6IhfLEunx+pWq9q6 Gadm575XLvGE8DFoRSPkvbuw3LlXMZvTVv9r8Tg1i+xt/ikWTLbjVouDKrzjRDMXfXRT 7VkkkdMP1s+5slonHJwr2v5mA++PovG0v9Vm4fbRwPSeflj0X1VxUxHk63Evd7pHhUxh AbVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278614; x=1786883414; 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=M96SxvkGRMZ7Xi+w8uZL4LF/+V8cVooMvtAQ+Mr6Kmc=; b=IijukSPVNo7Ql1f/rmbgHPgvNriEDGPsb0XDgb8sDimfxYcAebJHcw0LNaAgpwZARr 7C+GyejlCyUV/qDdJTLhgnJK2I6EVJorB8pKgPrvlz4SvvdmXxRUyrIVg9CRPqav887V eHOwYdcuz/dOQFVghbc53iXcK+9+0yklJ4+DLRIZaMcHCGAdH3wAsdXEqkcPKbykIIDT R9r8bnLW0Jkfo5CfYNDTxXRfs0X7tD0zP/u+mkQcrSM2ie3v7UretWjUmlHK7iWgL0Lz 6pOGA+Uz8875DeVD78j1MHt4mARwGslBtZvpBDQYzHDnN2BGGnxVn0Zu1r56T5Y//4iP YZuA== X-Forwarded-Encrypted: i=1; AHgh+RrSwD9BwaDC7H5XhibinoZSp4haZ7lPYJ5bfon4s1T5LGuzBhw9d5SkwMfcwjNi3VQYO+uwb3MZIrhlVZ4=@vger.kernel.org X-Gm-Message-State: AOJu0Yzu/gsx/vc4oo0gTPAeWKRhhdw0SnqCzmUPgun2vVEcZsEP1Hvk cb1CUT9AMwnCdJJrNgWWI0ZHCZq0AxlO0VSQj9rxKOgOK4mmpmd9zlQ++tZhsH+q8hHNC9dUJsz jJte7kaCUfDE7m9OyXQa2ekGHLpvgcxtR+Pi8gAPa8BciORMRGpOAPjj38uSremStXDo= X-Gm-Gg: AR+sD10ukDKkOoyZHBc3xj9VaEzyIko+bzH2kt0QwH2w2TkGA/0bx+6XmjYbqnyLVui nnwVm3TBDtaWU3btkG4P1VMxqBWzf4KcVr74IdUdlTC9O9HGnCsa18lV36GkjTitMrz3S5xHux0 aT2Hsc0pEjzcF9Yy7vAWpzsDRl239IurNKFTpoHmw5dzCHjMLWhoyryLCnz8HfF82sXjPD2Czpu 7NBdNVPP5luUdkBmhFQDaHB21BD/b1Pryv9fFc9RAAPCwMINacWEkTHsWbNRIKkgnIXPMYZ/V+c OYpiOh5imCqPnR5IcD/qSM+s42wTMlabwMGczJsl+6vjj8ORSRdlsJHVy7jcb76SaVVJ1jgEm5z MknQKh9PqB+1YqOiheQC/ZmyU/QTCwQ== X-Received: by 2002:a05:6a20:9e0e:b0:3c3:66c5:68cc with SMTP id adf61e73a8af0-3cb85efa4f9mr45271756637.21.1786278614289; Sun, 09 Aug 2026 05:30:14 -0700 (PDT) X-Received: by 2002:a05:6a20:9e0e:b0:3c3:66c5:68cc with SMTP id adf61e73a8af0-3cb85efa4f9mr45271684637.21.1786278613859; Sun, 09 Aug 2026 05:30:13 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:30:12 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:58:57 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-1-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786278595; l=3411; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=8e68S3J41m5lUfAd9CmgbUyj3eqYXTOESXQP5hoz9rA=; b=7ENeHZnytfRhz2nzQ7wQQKxQzC3cPs/ryrZ7ncdohs90F7bW6YN4n9MrFdXGLi79cGzVH6lK+ C/vTxRW/XkgAY1ctKHjymoKsUfYbTxh4isTo8gEutZNSIzBwqvE83Hw X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-GUID: fbIcSdctIj9RTqcZawO2EW1UYyD0m2G2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX1RtdcR6CB4tb IXOEpwVV+63byA4oJucdQ8OIOs2ri0V3cFev8GUdkPGe5nxwmPTPudN1YtBb5yXBFl/QcHpxxqI 1AEYGYVwQRuuFjw1QynhU3/mXgpg8e9fh1YqNw2rP4G+C1OvPwWtW/BAeWc3H3/Il1YDee8Col7 gdMltzkmK2CHwI8NHwUegGmPfmKoezXXMZg6milScnP1CDHUMi3GKatbOjt5B+gzFQqaG/U/AcU BGJQ1atWh5TSEHO3xfQ0IUidX3dTEz6odKIYKgAN5xYHcjMH20zgVAt+QoU6oyaQafxbMLSPLkq QUlY+vf4s1ncviiz298HInZv9/78tid4nwinOVVYz7noRi1U8/5kyuyyBM0EeeQts/D5bxdwXsj U1UigXVqS7whDX/elUDc1vJfdjdEh/0b6blAnbFMS0WBwEY0LExluMwkMXpoppor6LDm1tIIGCi gu8bveIfPatW9qvCNrw== X-Authority-Analysis: v=2.4 cv=PbrPQChd c=1 sm=1 tr=0 ts=6a7872d7 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=T6nhelsJTOTiISQcNXMA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfXzSm07MGLfqsK ZWlE8kgnxdY4uZgRtTN78RwOavYpKOnbqifU+45lgZQ2jzRcgwi8ra4dBDWUKkjJzfK9R78ykAA eL06X6RoqJB1tGEvXdeicQqwTVCQBjU= X-Proofpoint-ORIG-GUID: fbIcSdctIj9RTqcZawO2EW1UYyD0m2G2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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,pas.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>; }; }; Reviewed-by: Krzysztof Kozlowski Acked-by: Daniel Lezcano Signed-off-by: Gaurav Kohli --- .../bindings/remoteproc/qcom,pas-common.yaml | 9 +++++++++ MAINTAINERS | 1 + include/dt-bindings/thermal/qcom,pas.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..f75cab6b4ed9 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,pas.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..3f1e2bbf7099 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,pas.h F: include/linux/firmware/qcom F: include/linux/soc/qcom/ F: include/soc/qcom/ diff --git a/include/dt-bindings/thermal/qcom,pas.h b/include/dt-bindings/t= hermal/qcom,pas.h new file mode 100644 index 000000000000..f603bddef9a8 --- /dev/null +++ b/include/dt-bindings/thermal/qcom,pas.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */ +/* + * Qualcomm PAS remoteproc cooling device indices + * + * These indices are used in device tree cooling-maps to reference + * specific TMD devices provided by PAS-managed remote processors via QMI. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +#ifndef _DT_BINDINGS_THERMAL_QCOM_PAS_H +#define _DT_BINDINGS_THERMAL_QCOM_PAS_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_PAS_H */ --=20 2.34.1 From nobody Tue Sep 29 09:48:17 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 06D561FB1 for ; Sun, 9 Aug 2026 12:30:27 +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=1786278629; cv=none; b=azpCnSjhdOa9kojfmoLBTpszNPOHlUOosQyKWacK+HYh8dOzOekQK0+59N6+OoFebcGmfQpjaguJ6zgc7z1Bj6ApbaAQeTAvw7OPWeOVcX3pJAgg2iJPFRpO/DolfrGG5SAKyDBGSoNxLq8gsNzk9E0TvozrMN12BfZl6pSG+hg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278629; c=relaxed/simple; bh=W1+1+Vbim8qgRg34byZ3OafjXNZYpBFcqhabzIpk6BI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=igYH/9SoKG11BQOZ1npv/o7ZO8J9qsI18P2nCWSnFe2hGg2qQe3/wjTXAmT6exCKnKHeQPo7axEjxA1PXdkphiMuEZTPwNZGZ6dqVjJlDFDXfdggEXYuJnaDPU0syupxRpMFo2uPm7zCe3DK5qNaiVH/8vQOtLXR71ddlxW6pB8= 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=ZYkvhotC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=T7EiEPax; 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="ZYkvhotC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="T7EiEPax" 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 679C2RUa2999954 for ; Sun, 9 Aug 2026 12:30:27 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= k8R3z9uIhjCAaevgHTtgoUnkWfEHp3T0uL2mbrKFNto=; b=ZYkvhotCPfyCzOfp BtY01Uv/sd7QUP/ArTTU8si5NmIb+mnUsAEaphs8kfDesWE9pnxaHsy2YJLzpUxD s9zRXBX0rBcxFDRgMbEa11PWjfi0mTlJ34+iSAGlCbaiVwv6QtYp2iuzyGj6wSn+ MWHK0paDLQbDt2F4iQIk+0sjYa5oXlSq36Bu/qkRnZXnHWhpRydvM2siAKAykcsJ tBI+ccaWrJEHqVM5K/ARjlOKUCddNOcKNMrNupWS5AHHxsx4aj8ofzajhcF8hOhO UvrHRbkpWKOFdoGdLA+f51D5T5Cn+/fboRlJg9Kp+7jLpWQtFmxzmWWze83n8RSR h18Xng== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwuf7ax5a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:30:26 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38f57e31b6eso925144a91.1 for ; Sun, 09 Aug 2026 05:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278626; x=1786883426; 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=k8R3z9uIhjCAaevgHTtgoUnkWfEHp3T0uL2mbrKFNto=; b=T7EiEPaxsYXv59RORx8yUx+xPCraRiUiX3vpQeBnY3oSqQ/koK21Ml4mFNKmQTMX3o tbdvBYebtg8a2BZ77goxufCoAgCHr+3LsOZVQ8hB9KcchKcuvObjEJC5ir9MRRENUQbt iazPRU7apyyxkgNsFHHSa/+TRII5qJEcSQkuHTTgjdh2oDGzOz0HT/CYpzZqaBlmhond bnpk54uCTWNyx4wJuWy+eSTrN5ZzjOB2AdoDaQfCprCSQNZteKm9EnQFQ9fQLOXPqQXR T/3NpQuzMCHFdNnlnOZQtsuoTx8if5++IIq6LK8AGEZbEl0HNeB0ZSDWMFxDhBwBCIVf gn5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278626; x=1786883426; 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=k8R3z9uIhjCAaevgHTtgoUnkWfEHp3T0uL2mbrKFNto=; b=lOUsZIXVk3CcTcxSyAtNdxSAW6v2uYTeFbnav/REHYP+RqAUBRJ+unBPUZ3fe/8SqI 8t+g5ZAkfbxUwMRmoJP7s7J5kPqpLnz6iBrXgIDwd9oDtsCDT29HgT+QJuztRxMsgaV2 gEndtLOfLiAL43Oq/lvvE7UOH2Vf78E3shd2RoP3cwOgGgUu3RqAzz6djCcfEeLmIsNs 9CGzvEEaSi8i+HS4GWhme9iw4zG4CUu58HC+eyHi8Va3JRj1jW8CCYpYz/OQMEmNKpye ES7eP0vM0xXNBEzdpDDkkUAy7Mddla8nVOUdTBi9342/1Djs5HYWCYYuI7RCwUD3532t iFKA== X-Forwarded-Encrypted: i=1; AHgh+Ro7G6vnieeVOmYsAOb8mkUJXq10CJQfj9hOrx65IQwftD859epfp376sPFgr+eiIyShOrcw87BjZyeB86Q=@vger.kernel.org X-Gm-Message-State: AOJu0YymGyUOEiorK8HlXwa5bpXi0R8QuNsA7m3jlqo4IYR7RrvDuBGZ lYTXiX3LcdxzDXYKY//nFLlQXAsbS/ApB56Fdgid05N1ivjacF/KsoF/OcFZGt6AAm8t0IPHdbR MWZD26BVbq8/0H/V6i+GquHkkGahhk7wiERs8ZkIE2pxS9ht+MsRdM4XmIGEJH00fzwg= X-Gm-Gg: AR+sD10lpQ9gXsmEYKNSX+Qur2dbaQOP+NcSG4C+oMBsMrpWcnaIu1kouy7yRPD7Pd+ EbwzEDui49U8tcTRUHaa1ZVDHJxsOZZ1MKxVA3Qm1SGw9/MVEjbpgpVz47kjDDh9R3o2PNcZm+Y Rsz7r5/Q1sBQQhP8EUkF24K6MGsdeEZc5x5J+evG0O+S7r50bOqLBxjUwSx/VBF/iKcJuoshN8u xlKUBXSYdvYc3kXZKOUtHHsr7hLYiKzm8Lr9R8MDAwVYi3Vr6lzZte3k6xTD1XB77ss3hsj7moW ZKEy0TZ0DJbP2l+nOp43YliTVOzt3V3kVWtEOvZtfG5xtIkufhDGk/LLmS5tY7FE1Fai5+RAjsY aE4/4ZGiy1/xEPbS2S9E3EMClB2Lhig== X-Received: by 2002:a05:6a20:2589:b0:3c4:3321:4fe9 with SMTP id adf61e73a8af0-3cb85e991e7mr41269094637.7.1786278625469; Sun, 09 Aug 2026 05:30:25 -0700 (PDT) X-Received: by 2002:a05:6a20:2589:b0:3c4:3321:4fe9 with SMTP id adf61e73a8af0-3cb85e991e7mr41268830637.7.1786278623253; Sun, 09 Aug 2026 05:30:23 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:30:22 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:58:58 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-2-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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=1786278595; l=20890; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=lqymAg5/KUO8LEUkD/N9DiUxTSpsamB91N3q0Q0Kb/s=; b=LOS4Gucr307izs4XqsIoywQqlxJxLIboEA7noDcNBUCa5d1t18ahMZTrFDX9/HKE1zw6vEK4p 6KhnWmcUNHZBt4X/FLjvOQHQUT7ibkwTMWObcedrJiAsDkR3K8/U4vA X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX7QzjpL1GpCvM JwmdnltRsvLbhHeh92qkb1Pm4OjFJCBeCuAVgs3wj4Tuk2SbD/IyzB2WpvwvwznYAbYgeXvp4LA 7ieH24G2+BS33gl++J7K+lwcrLcrJgA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX3Ps5WRYklQ/K N3hAYADs8DVzhZ7N73mzfbgRW7b8U/2SNerVKBDhHkIImEyArSx+v2l+CpMpN0nu36dAP01g0DI WqSQjD/XtaUvTaxBHxDTOJHqwkgKGS77UJRkqKoTHlCubQIfVHTQs7Dqo0wvnJQ+3usNEvyRdYh azNzf0cGSiDh5WK/hNcnLVrNNhDNoUfPFzVCMXXfqXSW8SHXkKzpQ++wYl/hxX6mqi4BqKtPrms q6LUtjhYUTpynCxfM4Bif3HwrJk4mlT4YnOUTZvihsXohAm/xg8ufuipsAHNFYhKGSya+13ITxn 3EIBGXqYa4V+PeCZm0vyLIfh7wwd2tx5e5cEiO0bO/0XzWuikPHksEbXbuT9zynihNsl2lpEZX/ nqdDzDJvjn1cDAPt2AojXsOD1cSgEdd4rYHhhFIOdKGrpzGuLo6CQqQ6N+6nLKfRsNxJZ1PGYtx chrbczmdek07SIR3mlw== X-Authority-Analysis: v=2.4 cv=ecENubEH c=1 sm=1 tr=0 ts=6a7872e2 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=vxRmu5Slt9wj_6SMVmQA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: AwDpZql3IedHk6yYULn7xOmvE_sZQy06 X-Proofpoint-GUID: AwDpZql3IedHk6yYULn7xOmvE_sZQy06 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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 | 12 + 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 | 36 +++ 6 files changed, 652 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 3f1e2bbf7099..7b347a84883d 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..6f87e85713ec 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -319,6 +319,18 @@ config QCOM_QMI_HELPERS tristate depends on NET =20 +config QCOM_QMI_TMD + tristate "Qualcomm remote subsystem TMD" if COMPILE_TEST + depends on NET + depends on ARCH_QCOM || COMPILE_TEST + 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..54e5ce8dc462 --- /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; + u32 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; + + if (!qmi_tmd_cli->connection_active) + return -ENOTCONN; + + 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); + + tmd->cur_state =3D state; + + 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; + + 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; + + guard(mutex)(&tmd->qmi_tmd_cli->mutex); + + return qmi_tmd_send_state_request(tmd, state); +} + +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) { + guard(mutex)(&qmi_tmd_cli->mutex); + + 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..452f51f23731 --- /dev/null +++ b/include/linux/soc/qcom/qmi_tmd.h @@ -0,0 +1,36 @@ +/* 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; + +#if IS_ENABLED(CONFIG_QCOM_QMI_TMD) +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); +#else +static inline struct qmi_tmd_client *qmi_tmd_init(struct device *dev, + unsigned int instance_id, + const char * const *tmd_names, + int num_tmds) +{ + return NULL; +} + +static inline void qmi_tmd_exit(struct qmi_tmd_client *tmd_cli) +{ +} +#endif + +#endif /* __QMI_TMD_H__ */ --=20 2.34.1 From nobody Tue Sep 29 09:48:17 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 85161217723 for ; Sun, 9 Aug 2026 12:30:34 +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=1786278636; cv=none; b=HcDfz46w6sIJ2WjhXqZajxiMUN/VXdUN2sUEg5TkwOpHzXWdNaYHhAH4smRztOonsxfYYOGA7/4C2jJ3WMK4fCbmJ61wvoGuVO3FMUFJ7WJpJbmeeUOer/anXX2s6FBRlyM1zy/zEI9e5MInbBT5jk85NPLT+ezvbIbu+d/MahQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278636; c=relaxed/simple; bh=Hd9Nn9n09AZNGTV46/QfXFtAJzN5htP275zS75BASFg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kowxMkmJIhHyPBXtKdk+lhUetP6NeQtg6nzZbxB97b4d12tnm8aF4EBev3pZMsEECI6pLQE+e7zMLemZhYdIOyq2na0ePptFTlHKlVFI3NdXtcroatxRlHFU/vQ1OaVujnDDZo86dMS7kzo05f5fT/G+JJs08Z+tOqgTlJPcc0Q= 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=nDjYT0uZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ITpIOgKK; 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="nDjYT0uZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ITpIOgKK" 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 679C2qLx2986096 for ; Sun, 9 Aug 2026 12:30:33 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= NICNV6Yj6xf0uEcuxcYKasRHhguGIhBcucK7mfqbGlY=; b=nDjYT0uZKJ5A1kDV LVZEFkfXLTMdZcauNTMZkUGOehJHM64oBqOr9CW8eYglg8lr6y7UKjnr68NtNFCv mBmKNTNEIku3A4AN6vkMknUb2oWGuVdBbGE6LpShUacILSh9PkszGw18ov8JDVlA T92TD8ZULMtLn3LcZU9P5hMQadd1POc0XphP2ARiPKZuv81Mm2dZiqgJNUcnUsYs WNCzyc8Nm2uErwv9klQubTXZL+rtYiT5RZA+K9pTrq75vRtHcoPiiwzaZq4uWCCm eugnZ+R/8dJiRwZgGp3BtkcQvXEbcg6EyNGMqE2x0eDLA33Rkd6QDfh3Jfa0Rljo JQq7qw== 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 4fwv1yawbx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:30:33 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38f5ac7354dso2176336a91.1 for ; Sun, 09 Aug 2026 05:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278632; x=1786883432; 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=NICNV6Yj6xf0uEcuxcYKasRHhguGIhBcucK7mfqbGlY=; b=ITpIOgKK66lLAzqQTbozR9VHHSRhtFDFFQpa2BLfUhFoYf/B+xTKmfl7rBdQQdBosh P2Bj+7NABdnaYbyAMjV9B+0wP0TDTOAdaW0HHb6Ou+a5EOKN0N18JdQbHsAj9xpqA3FY 2sPF3W790mqzYI8Paco4VBYxuCjlpRnAJPzxIfC6gcgV71OanYKr/sBtpskNtJTt8GfB 8QlVTz5fnlWp1ixRNYBZvpEo4Yvdy0/womXKJljp7K+ld6L9mTUNSQYcKtGLwtzD18T1 pJZ0n1G/yUhe2WHj2hRMGx3oz5/4Fn6c3roFd3xqluE9rHM/3sn3LkTkm6t4xecBRwXl oS1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278632; x=1786883432; 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=NICNV6Yj6xf0uEcuxcYKasRHhguGIhBcucK7mfqbGlY=; b=RHpOVPwsxbcdjUgKeYxwgYwH2MP4FbmJ/qfTTLp2vsMrNUTEcwjXk2HJ9yN73YPREB XYKwZ+eZVhrR1jDp7RkLzOZXZv5TwSGzaLrKRSIfN+C4K8VuNastjGOZ52MxGl59cZeg 4adDae/nSInRO+1OOSrowJ+CzXHU/RjL5G4cAp+76LQ1vuyTTrIatATW+JxhlbQ3cDMN Tc9VkezhknoaNs/wHgBQwnUiLMCHCDdFLUjantXX7pEoG4OJ3dJHSegLuoQzqpMuDTNq 0qjI3cjAJuUSge1pbAFZJ3bTVMMlUa/xRnsNIIUvTlGgLIrwNw0FYHSZNJR9fuApA9TU cTow== X-Forwarded-Encrypted: i=1; AHgh+RrHXCpv88izKlwYQMtyWfwWWXtClrBTxDLyExYXoBV20rUacTi5q06ckT4G8yfbzNWJdR1faClpbU2Up3s=@vger.kernel.org X-Gm-Message-State: AOJu0Yzwe9bIn3+H6AdG0Y6Zan849kI+5LCigxZ/dGQScVp9LQWx9VSt 4a/p6Bts4EpqO6ydKuo9ZtBgAjNv2+VQaXI6Ycmt5W1vn7fCzgHij8YsfnM6sZdBx2VBCatCZqk LD2xK9pSZ3gMqmFKR+UPyMr/uiYpLT2x4oJ8U7A3IEUbn1raBlu5HiEsoip4rNj1hyls= X-Gm-Gg: AR+sD12+xLS8cwwoPgbVD3sctYh+02znpEovMx0KUOrJ1gC+ZAxPuSAMiyxGFP7cXan s9eLG65p3G8jr+v5jn2Jtos3/T48Fg11rfEt6Q3C3lyPVDj/JDXsJJQFOWn3QA12U+4sAjE9nKT jPHxlzu0pnXmvN7wcECCukTRYTTXISM1ITWRfcxG3kprclLNHYDrUXCOfKtnxaVLxGQIl9zSkHY wp5Q2EnIC01+X3v6cIRBea6W7ZYfREoxZ8o5pHIGyqhLqMFmbNWCobJpgDKwoNuHYTiZaUFKWsY 09V+VjLYprHAiw52ErKgFftV851mOVWewIPL2ZbD4wdEBJDpD8cGrq7XL/qflehdF2W09hy1bPh wjgVvGuAjKT4aPlFj7imjxLzxR9IZ2Q== X-Received: by 2002:a17:90b:2785:b0:38e:bbf1:de3f with SMTP id 98e67ed59e1d1-3903c5d2f29mr39018515a91.12.1786278631656; Sun, 09 Aug 2026 05:30:31 -0700 (PDT) X-Received: by 2002:a17:90b:2785:b0:38e:bbf1:de3f with SMTP id 98e67ed59e1d1-3903c5d2f29mr39018410a91.12.1786278631021; Sun, 09 Aug 2026 05:30:31 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:30:30 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:58:59 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-3-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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=1786278595; l=5213; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=Hd9Nn9n09AZNGTV46/QfXFtAJzN5htP275zS75BASFg=; b=EcXhX72TwEbL970n1s+boTvvuStl2qaPp/Ka5abO4VTZM465rNyx2YLe5opDFIoFVg/O0qj6D EV9VVVMoWJeCt+tBWKtYd8cc6HKWv0pp8Cx35UujwP2eegLId22dWwm X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-GUID: g2vnPVHPYHwVVxB9BcTohqfn2OC1Kzgf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfXzez+jt3NLNBx oG9os46PIhK69vXG1zRD5ZvYk9/sUIsD9wQ1nc2yCe0uMTNrqMDTdXqJ6zSdh2QS/UMafhEGvqf OyR6oeUubcDDP0w5bjN2Uo0vuXWSr8VHKqD8pexYh47xAchMKSqLy/lsDUJp2g6Ar6b9pO8oaCh GJ8O8lRuuoT+Yh1/y+JuMXAOtUAeLQL/fmO8cHzBUg9js3SJ9bjbTNJGjMfSmR+1wMslSUVlQQp P7U4neOYcTEFCD8aMlw56KIEC/f6ZO7EtpmEpfotFAdWvTvj1vhD0Gim48TJfSyVUvIzoVm3kgK Auwf7t/afzkGdp6ufUI4yz4pgg5j7YQcpkp2i9egaQBs8UEyCmaB/GTrxGo7so9TNt1LLqrBKXM v5PbCYCCPjC4W+mNI17iKa0uCLOhBVnDNvpbzp2kZj+xgkEIohU+f6++3vkBLEv2eMVVeENaaaw Aljk0wCT6IWUDy6tMRA== X-Authority-Analysis: v=2.4 cv=PbrPQChd c=1 sm=1 tr=0 ts=6a7872e9 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=p67dmK6jBiiEd9TVeScA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX+kOu2cJ1BrGx 26a2qknJKB0ghj3S6t/wW5lMs/om3HwZGyMbRBDrSwMqCRVVs5XXtTQfea0yGuhcRUlzyaJisyU pTNca2Dzk0RDdtXBahE+pwj/W+5k9tg= X-Proofpoint-ORIG-GUID: g2vnPVHPYHwVVxB9BcTohqfn2OC1Kzgf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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. Reviewed-by: Daniel Lezcano 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..152d7a53aa09 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 if NET 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..b9c01ce5024e 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 >=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); @@ -962,6 +1047,9 @@ static void qcom_pas_remove(struct platform_device *pd= ev) =20 rproc_del(pas->rproc); =20 + if (pas->tmd_inst) + qmi_tmd_exit(pas->tmd_inst); + qcom_q6v5_deinit(&pas->q6v5); qcom_pas_unassign_memory_region(pas); qcom_remove_glink_subdev(pas->rproc, &pas->glink_subdev); --=20 2.34.1 From nobody Tue Sep 29 09:48:17 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 2EF27217723 for ; Sun, 9 Aug 2026 12:30:41 +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=1786278642; cv=none; b=XhokYXy6vzFK6NZ/bkeSBfvUUB186A1JiQj9Xa52lPlxXq+x5JRGrF1ddODD5Lw2DAuwOgkXJUaE04TZqw7+5i3A8/4o8bLnb5CaKkz1bxFwoaxZ1fSG12JoKdh0Pu714QyhY72v8Bqjm1w1QE29b5n0FyB1BOGSGf5azTPHrgM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278642; c=relaxed/simple; bh=B4aq1yOKEZGsE775NUNcG7RD3TIx3tEAKPyIW0OCFew=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QsjpV7nCtxRf+/5P9BV3HUrHZMVGhU2MHfV5RHmEzJ3jMbMfep7xf76mnuUeH5hEkya2ZtDBVqNd8HvZFKTOXmKFwKRV5iFxoXp5pAybqZ2VyRbueuRQ/DZTK6hPN5CM3bP9romneEjEiAVBhl5HghULsTZi2u6FEfWJ/YqxIhE= 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=Z6AtAXLW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=R8Vpv7Pn; 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="Z6AtAXLW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="R8Vpv7Pn" 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 679C2ZDt2732552 for ; Sun, 9 Aug 2026 12:30:40 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= UYo5Cg7K0tncVfDjQFA209BANkgOUDdVw0Wtrd7/h48=; b=Z6AtAXLWozwOSU3l JqyB+QodsjJXb/P+YmoZSPFw3deOCzedkHEMtjzoZwhQ6elXF31QxhHwC9f4dN40 T25FTv4cBtbYZtiJbEhbum5e4x/DDwXilh4RGZbweqTpBerTi3v1nxbi7oSlcrJP N1InntDJHxdrtEwD0cQliUbq+PUfXeD3854uzpJTsmF/3sE4ZyyyRKpQ69EALRqw e2EaFYzCzqDanwxdhBGxgCedVBK/5XARz2t6Eouo0uETh9eHfmpnzd5TpV/fylO3 Ar/DGEobFoL06oDcM4kSqFFwl/x4DwckBVbhAf8awJoSZvVSr+AHP10UeIjjXQ7S QYH0AQ== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwvp1jspw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:30:40 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-cbb92868263so1320138a12.2 for ; Sun, 09 Aug 2026 05:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278640; x=1786883440; 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=UYo5Cg7K0tncVfDjQFA209BANkgOUDdVw0Wtrd7/h48=; b=R8Vpv7PncAUhfcF8nsIRbgYWZqsAfEtI60mWH3xLp1Y4xOEJmqmjqS2W2P56BFRBIp BNcJAzDJegI/lmTqHLvM4Xp3c++T41H+XHnF/CeWpZrNt0PswLrafpS4NLu3AwX+xOFq 0r8UAyYxt/H/yCmQ2WSI0Z2dkrtS8GViK0LNTwyNUcigwcpzxuCmgdkpA9Kf+cxpe6qQ YGZ3Qi1WLjW3cwGJbGSdqAUKKAWfGgvEZnf63qo92g29KMqEu0m2mKxMVRtnIuQ2PGzU sSbWr4ArcsIW+A+sk5HiqZ2yP2tUb2i7dBKJ2e55es4Va9yyZ/tvZF31h0/bK/gnvPc1 o9qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278640; x=1786883440; 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=UYo5Cg7K0tncVfDjQFA209BANkgOUDdVw0Wtrd7/h48=; b=muvHd+zspQoMf1YOKa+QXBOdb/kJbjGtCkjMABZApylnQVRH9EJTnUyi+T1ScNv1TY ZWlwJr+grpmzwYZHHK1Z/FgjvWMxxrmkoOPwJsoWX+x/CG16L125sdxEp5cUMYLi1Oys CUabt4yz3wTqaGvxtDZFufAspWjZfiIaOPBCcg2Ll/TQT2q4FjWEmFFT8ZrtRYPHjMji CqCmuADp5FMNZ/Iypqg6FL991bvNuW23+XDV5HZvR8fH2NkkH5v01vsrZ4Y/uyMEyTWv uporZO50FNKm/0ym6+ZXazn83LlHW1lhugYDPf4Ova9znjrZSiaBK1iNQ43NicSU049i bNdg== X-Forwarded-Encrypted: i=1; AHgh+RoQFYbrazwG/dm6HeKEKTijAnqS8xn1eeYFPojrkiwjdYzFh0qgqG0hRrkX6IwfDdQ9ahiuQP0dKGE6kKE=@vger.kernel.org X-Gm-Message-State: AOJu0YygdVuWjwQOgfKx8pxR7f3iJC0Zlux6aUKAtWIrr+QwmwdFlT6u acP0lTn0bKEO7HPTDpPFq+J//Ik48kMc5v/9UiKRpEk/raToxYyOKx0VBurWGf623yzb2UpJqF5 y8LRssiTjOpj3oDFAe4YnHkGS22QJVtIMhxJdXzlWmXmbc3Lvt7uP/TucrHNF1D2ySw0= X-Gm-Gg: AR+sD11/lzrl/IkUlpJBzwFrfongO/IHRq2u/raXVdlUSXDhjMhelLkpNMUYS17bLRf djM7+He8Bw1Qi0P8M0iqoxJxaxVU1o2UomUICXrDDiU+rJoOb3RD3qq2UMP1xkV8R2TKOQkPJ76 jn+x3zH/OqdgdAz3cMfqYj1Usede7kF9n//O6mRHF8yKrfzpiwAeYtH23NSj/04Lg0rMmy7Nfow +QOMHqvUeBU4oYDrfRBWnW1RuDG2yVIyv/DmvrhzmL6Rn5Gn7kxpxKnxR0AlWx/GeELdU5qh9sM vJXrpIiA72TzI9SvARuUlqcC/ahOsimlyKFAW1LrjvYeIBQdDR7BqubRN9/5YNLQEH6PYsDphXW qSDICKvkMsLH2OThwZtfoOCjhBrXAFw== X-Received: by 2002:a17:90a:fc47:b0:38d:f5bb:e0f4 with SMTP id 98e67ed59e1d1-3903c599361mr40201656a91.1.1786278639708; Sun, 09 Aug 2026 05:30:39 -0700 (PDT) X-Received: by 2002:a17:90a:fc47:b0:38d:f5bb:e0f4 with SMTP id 98e67ed59e1d1-3903c599361mr40201572a91.1.1786278639160; Sun, 09 Aug 2026 05:30:39 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:30:38 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:59:00 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-4-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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=1786278595; l=3908; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=B4aq1yOKEZGsE775NUNcG7RD3TIx3tEAKPyIW0OCFew=; b=jCpmO6L8cXhdRBW9Wt+P9cCZ/Xw0NU9eM5cRXhlOXAVsc0LTaypQYNlUKBuRbcqG2qDaxK7kR Z8goDg5+xHdD/iUAcI1OTwd6w4lnc85pdRU6T5PsYrE/NGG9I4Qh+mD X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX/b21OsxvvNcB MAw2LFLd0HZqjt1yYFcYpH0yx/OeLjNz8m8elYCh9XrVdfcoIH2mK7yBx2PJYyHX8mCamTxvg9h nw9ECh94M0d5uHfJaNJzsv3qGd2Ecsob4VbFhBFSBwgfmDYJ5BMSEHW/vzWy46vryuEcEz44G9b MGy4N+jBn1umLHGMpXO6cnKVfy459gWyhNU8yfqmXtz+HNLiY3ltuPTGhFqS5sS9sQSNqF0jYC6 HbPHu3cUtyQi5xGn6Dgk+yv0g79OXAxv52c4GZbMJOnzUkDMQP0suIh9csQQ7EyFN8sD118GaPI pwRS+ZqJsjrtLVnImG7ScMIg7ooQHGBRVnChJqYYHD28yJmn4kyghKmvi1tHT17WhE63dhraz6j QLBh8otr57rUy9FZXnJ23sKWKIMKJE5t6+34J3yTWDDoCD2oQ2Q+FiSNQjhuSdBVlSp/88+EulO TymiKdOVMqTt/FsaPCg== X-Proofpoint-GUID: DfHzW43IYjRVzBIf2R_cozX9mbR-vlJG X-Proofpoint-ORIG-GUID: DfHzW43IYjRVzBIf2R_cozX9mbR-vlJG X-Authority-Analysis: v=2.4 cv=ebgNubEH c=1 sm=1 tr=0 ts=6a7872f0 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=j6jQExit_mXiN_RbaP8A:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX1Grng7+AT8/e Thfu//l02Wppd0UrzjRC8QmXkxtXdWv5XWlquiizgDnRUwZDGVdQS7/ccwh1ELFXXszOniRreb8 MI8zkzgcP0mfdoaiGPpdIXRl3bzhcaE= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 phishscore=0 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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 b9c01ce5024e..36115b24b859 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 Tue Sep 29 09:48:17 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 B593317993 for ; Sun, 9 Aug 2026 12:30:49 +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=1786278651; cv=none; b=DUWBjISNT64hQTeuPXfZs99EE1GfCHvlV3t8/XeEIQ7GwjRufb2z53rStIIyiNSaRgmh56ZrT9lfPSiyX8vo1z3KNNV0tC3qfzq2D8j/U9xoATxiCbyGmfq+iijNUNi2H7TTxXygOkeRKkgirjN5SpQaiRPTfiuwMIjqJJhhDgY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278651; c=relaxed/simple; bh=69/Nw/l2Pjw5IjdOIVkv2Ao4l0Ioh5cQnspi7SqHb80=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rsfQgZgW7WCDkKf3r4OT/Al7xRwfoFvFZDPQHOe2qS+jwKtWQ0LOCjbH+6Ppv/ChIYCe0xCshZ35VONgTDlOCJ5u2CTwrTQEwkTrxPauR/Hr2lWhGZbE6lji2q3+s7SfVXjPzpxSMSFVXNiLIUXzsZW5k/LvVnPWO9SWwWzc+9g= 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=Aa8sKOBb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=N782v2YR; 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="Aa8sKOBb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="N782v2YR" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 679C1Xru1945016 for ; Sun, 9 Aug 2026 12:30:49 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= meyc3mG1hoZYt2I76X2E0RPX3lSg1aWynwrQK2v/AGc=; b=Aa8sKOBbPfSwv3r4 CHfoKuAK7tNW2aIWbcnzWHZHqvqyPlEl9+uaDpNb0TgbmpNmrJK3jFSHGY50O2aV xgDd9iSWqdezssLczg9NMp2gVvVea6xNWVktjD+aAKxP2hcpYHE0TDqtCyPqmC5l uKKfzWKLv2HCcI3lTrqlrvz0tTzIwGAmv/qi1cOTQgyxCXXf3wp73iCZSUY9gJPJ ppTQETwsvRBSeZ1uPu302vYTrRX9Ph+cdQp5RK617D0gC2nXqRu7zhwOp6CbShbT sRnm7qdTj8fxXUFc6avO5UmM4GzrAvygQvH6mI+ZAgn/hrlOCc/goiMfnDQss2fn mqzslg== 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 4fwwmgtrf5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:30:48 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cc640dfde3so13817575ad.1 for ; Sun, 09 Aug 2026 05:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278648; x=1786883448; 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=meyc3mG1hoZYt2I76X2E0RPX3lSg1aWynwrQK2v/AGc=; b=N782v2YRO+ab5yQ8cb0LXysZgeDL32li3AmNsedETdqxyfwPVDwf1/4jKkdVJIweyp /t5HZF/Dz+Zja12flhtYYcEjIzQTCOzbLYGPog6t7Obij+iM+CvF0kKGMAcTa6B86HeD cMCimOFd+O18eDgWr1ibO9gEfxzgoAcJj8ZDTyNxfXLU1SJ/HTB1JXZUlJBxQtyqPepQ F3i25ew94M3B9Jkqp7OP7XjYBCH1xynCiTQCwmggxeR7gJwQL58F1cmCIzuRteK2ocmh DCo+rO3vzrGL/Cw61tLhumIE1rd9UdS+ymP3zIZ5Ct886t2lEUG6FOd6BW9Ukn2Gw6Ql SI+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278648; x=1786883448; 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=meyc3mG1hoZYt2I76X2E0RPX3lSg1aWynwrQK2v/AGc=; b=j800WgPHspQooWINymKv7n8hNjMbtp1yJTAFnc3aXAd7jv9kl1fpT6GzZmiLtRpZIS 512is/dQxt9k9yX40rCy4S4AMG57qLi1g+vGG/xeTl/ue5bQnQ0gT5gQfC/3NxIDCra5 Hi/KTHYuX0XDu1/5axNgb8QvWv6aBbROabcnxD7yg0SxzYKpZE+TZF2upSyG/wzRm4ec GHgwyZ/2IY/J9vyt0O3fgTA5aqGM0SETmUo0oOXayO9GGkl4I700UpZbeUViLxTV/aD9 M07VEXwGcwFz0MxkgU3QObHb+sfZEJHPvJqO76f/Z/oqGEwumP+s/QOAk6METKIcrQvf ImGw== X-Forwarded-Encrypted: i=1; AHgh+RpYU61c+Rzgt4l33LWuEamndBtDGtSLTN6Ip1Zmupi2KJLJBNs7AM4qU1oY0NRmNcM9X1g1NtUgGI5HzSg=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3xUUBnWazWwSTVe54F9czkQL1W3zJBHG4jO4SFELt5cIurki8 1Q7uhQvc/2Li7ZcIzvlDLIW7evdeTnNzBvMHD+o8dqr6mUw9IYQlNG7FkkmxRYnAE60/GZ3Ier8 3e0zTfOxwTsa2UMkjPeEH6WdNQvk4utN9f5PA+aGpQbbX3rH6T3jsu3S4hdVU1MGrIaw= X-Gm-Gg: AR+sD11yB9lM6f/bvMYdAVIwzXG4Pqbudrf0EyfRVvGIEo0SfnHfv+vgaezQGtGjTvd 5pI4bbmnGl/CSeySnWlNajNaruGYpFt9HeSSpLn0NqrU7bD2aW938cB8oSdkRTpl4AJkini8zdC tIHyScBCfnwIi66nGQZ8ojJ/VIt0/Gq3K2c1z2yy1UVIIf/hZ7PGqQlgU07bVYHFoeny0rxDSvQ //qMU3YhN7QJEgH1N4HV4HkWzfEcSLsU0kKyRm6JfzkOHKonClFiwQpyZaEUv/T8IPuXk7hOyJA Y1eAnxWjznTrNSpiytq5GDuQjUTXAlVs9ougBdesK19nHCyjNvNa4+vCWgAw7Wfb4S3k371w3wl TcRJnQ7jB1oZCPNm6mvoiNwI1VbRyHw== X-Received: by 2002:a17:903:3d05:b0:2ca:ce92:6e44 with SMTP id d9443c01a7336-2d2a888b5damr164510125ad.8.1786278648097; Sun, 09 Aug 2026 05:30:48 -0700 (PDT) X-Received: by 2002:a17:903:3d05:b0:2ca:ce92:6e44 with SMTP id d9443c01a7336-2d2a888b5damr164509355ad.8.1786278647574; Sun, 09 Aug 2026 05:30:47 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:30:46 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:59:01 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-5-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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=1786278595; l=12091; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=69/Nw/l2Pjw5IjdOIVkv2Ao4l0Ioh5cQnspi7SqHb80=; b=MPkAj+GoaRPiG5HX3K4sttXuIv6kA4leWD8T6fzWnaRRXIEhWDzZtKcAwqvU8dhGeONjp50Yg iMY35O9hixpBVU0QBzvZuMG5lQz1Wqjb2dpv/jnziFlg6VBMwsrjA0P X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX5LHcRBBiBkAK 1ueqi3E4Wq7osXRXNMeGijahCnFrnNrXJneJrland+D9dyhNE4iGEqKwrIEq5djAxFrFlK7RYj4 IQ2144vNOtizPhXUkGCB/PCjZ8SmOiA= X-Authority-Analysis: v=2.4 cv=HodG3UTS c=1 sm=1 tr=0 ts=6a7872f8 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=2Vcc7Fol4T68P4ep610A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: 6bPqoxtLi9Tp6gNWLyDvGhAxeuOvTb1D X-Proofpoint-GUID: 6bPqoxtLi9Tp6gNWLyDvGhAxeuOvTb1D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX5mPfj0bGyy1c pVuObcEQuenS7qplegfB5z4UxnIdb/hTZluKInJKJnnx0AvDB//+nJdPcIIKrFzmz8TTU762iPk VOSKkEI0yOnLz15vdl1ZLhCTK16Zghs5OYM2sQoy820f1XOpAA0kgGwuVLDZTaO9Yb6rqAE2Sdf CvgEO4Ib+jUSXwg4e1dO73tN+lU9+vlwpDWpx1NYAeA9TronExGQCRqzBVh1hNlwBl73USChFKg 0Zu0dGjRgyk4CINxUQXjTCHBb9JvD3Bz3KTdtIeAitnQccMJkpJjG8aNgwX+dm+HW961LM46SoT FXnrAyVfOZQAut+PbCOA1Yhk95k94TKmBR/8YjqrSTR1fd5SV+pOEJLDrOLYdfyJLbBPdFfnMxf +XxIzKhwqCzF4CBggEHXcQDpcOSsd1JEY51dMY4lqazfcKtTD7vZ3bOxH/ANi43XPtoeaogAC84 nJ7FG9Wkj9qGCbzZdUg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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. Reviewed-by: Daniel Lezcano Signed-off-by: Gaurav Kohli --- arch/arm64/boot/dts/qcom/kodiak.dtsi | 125 +++++++++++++++++= ++++ .../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 8 ++ .../dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts | 8 ++ .../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 8 ++ .../boot/dts/qcom/qcs6490-vicharak-axon-mini.dts | 8 ++ .../boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 10 ++ .../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 9 ++ 7 files changed, 176 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qco= m/kodiak.dtsi index 7e73348fe0d0..53dcc5ebacd3 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 { @@ -7732,6 +7737,8 @@ map0 { }; =20 nspss0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 3>; =20 trips { @@ -7741,15 +7748,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 +7782,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 { @@ -7804,6 +7841,8 @@ ddr_crit: ddr-crit { }; =20 mdmss0-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 7>; =20 trips { @@ -7813,15 +7852,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 { + mdmss0_pa_cooling_map: map0 { + trip =3D <&mdmss0_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + mdmss0_modem_cooling_map: map1 { + trip =3D <&mdmss0_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 mdmss1-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 8>; =20 trips { @@ -7831,15 +7892,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 { + mdmss1_pa_cooling_map: map0 { + trip =3D <&mdmss1_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + mdmss1_modem_cooling_map: map1 { + trip =3D <&mdmss1_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 mdmss2-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 9>; =20 trips { @@ -7849,15 +7932,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 { + mdmss2_pa_cooling_map: map0 { + trip =3D <&mdmss2_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + mdmss2_modem_cooling_map: map1 { + trip =3D <&mdmss2_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_MODEM + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; }; =20 mdmss3-thermal { + polling-delay-passive =3D <200>; + thermal-sensors =3D <&tsens1 10>; =20 trips { @@ -7867,12 +7972,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 { + mdmss3_pa_cooling_map: map0 { + trip =3D <&mdmss3_alert1>; + cooling-device =3D <&remoteproc_mpss QCOM_TMD_PA + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + mdmss3_modem_cooling_map: 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..e3ddf47ce421 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,14 @@ /delete-node/ &adsp_mem; /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; +/delete-node/ &mdmss0_pa_cooling_map; +/delete-node/ &mdmss0_modem_cooling_map; +/delete-node/ &mdmss1_pa_cooling_map; +/delete-node/ &mdmss1_modem_cooling_map; +/delete-node/ &mdmss2_pa_cooling_map; +/delete-node/ &mdmss2_modem_cooling_map; +/delete-node/ &mdmss3_pa_cooling_map; +/delete-node/ &mdmss3_modem_cooling_map; /delete-node/ &mpss_mem; /delete-node/ &remoteproc_mpss; /delete-node/ &remoteproc_wpss; 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..8ce0cf23deee 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,14 @@ /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; /delete-node/ &mpss_mem; +/delete-node/ &mdmss0_pa_cooling_map; +/delete-node/ &mdmss0_modem_cooling_map; +/delete-node/ &mdmss1_pa_cooling_map; +/delete-node/ &mdmss1_modem_cooling_map; +/delete-node/ &mdmss2_pa_cooling_map; +/delete-node/ &mdmss2_modem_cooling_map; +/delete-node/ &mdmss3_pa_cooling_map; +/delete-node/ &mdmss3_modem_cooling_map; /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..abee1af19c23 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts @@ -23,6 +23,14 @@ /delete-node/ &adsp_mem; /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; +/delete-node/ &mdmss0_pa_cooling_map; +/delete-node/ &mdmss0_modem_cooling_map; +/delete-node/ &mdmss1_pa_cooling_map; +/delete-node/ &mdmss1_modem_cooling_map; +/delete-node/ &mdmss2_pa_cooling_map; +/delete-node/ &mdmss2_modem_cooling_map; +/delete-node/ &mdmss3_pa_cooling_map; +/delete-node/ &mdmss3_modem_cooling_map; /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..d3f558596ca2 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,14 @@ /delete-node/ &cdsp_mem; /delete-node/ &ipa_fw_mem; /delete-node/ &mpss_mem; +/delete-node/ &mdmss0_pa_cooling_map; +/delete-node/ &mdmss0_modem_cooling_map; +/delete-node/ &mdmss1_pa_cooling_map; +/delete-node/ &mdmss1_modem_cooling_map; +/delete-node/ &mdmss2_pa_cooling_map; +/delete-node/ &mdmss2_modem_cooling_map; +/delete-node/ &mdmss3_pa_cooling_map; +/delete-node/ &mdmss3_modem_cooling_map; /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..891941906a46 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,18 @@ &ipa { status =3D "okay"; }; =20 +/delete-node/ &mdmss0_pa_cooling_map; +/delete-node/ &mdmss0_modem_cooling_map; +/delete-node/ &mdmss1_pa_cooling_map; +/delete-node/ &mdmss1_modem_cooling_map; +/delete-node/ &mdmss2_pa_cooling_map; +/delete-node/ &mdmss2_modem_cooling_map; +/delete-node/ &mdmss3_pa_cooling_map; +/delete-node/ &mdmss3_modem_cooling_map; + &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..296c72672ec5 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,15 @@ =20 /* WIFI SKUs save 256M by not having modem/mba/rmtfs memory regions define= d. */ =20 +/delete-node/ &mdmss0_pa_cooling_map; +/delete-node/ &mdmss0_modem_cooling_map; +/delete-node/ &mdmss1_pa_cooling_map; +/delete-node/ &mdmss1_modem_cooling_map; +/delete-node/ &mdmss2_pa_cooling_map; +/delete-node/ &mdmss2_modem_cooling_map; +/delete-node/ &mdmss3_pa_cooling_map; +/delete-node/ &mdmss3_modem_cooling_map; + /delete-node/ &mpss_mem; /delete-node/ &remoteproc_mpss; /delete-node/ &rmtfs_mem; --=20 2.34.1 From nobody Tue Sep 29 09:48:17 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 E2183214812 for ; Sun, 9 Aug 2026 12:30:57 +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=1786278659; cv=none; b=TG1aQyw32N35ZwfuFUhQlASktzBmJp3M/N17osvTxFS1ShA0zV+jU1zIrk5bT1FnZN37SQCMadvemEzGmHeo+EGsWCtFCz096j51CBpaomwA8qUpV4hjU292odEeg04im1lFNZk2WENHm4JQc3sjrVENPHvRHIiv/CehU6ShR7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278659; c=relaxed/simple; bh=zu8gupPC5A5PcDFsGHMjuTQqaVyyOo6BMNe0DLfwd9A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bomg1Tdbt7BTG+RWybNuJaC076gK9vv7ehxfaTm/sKS1BYT0UwpcI9cTUfo3jGzmCj4SdqM7lv4S7OCzuRnApNaJOAN91Rv2Ay78850Yp5HZSFbxb66EMfCu5Y4MhT/Z5dsfxibtdREAfnvSXpECcRKHSMlvzqw9COQmwKztUc0= 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=e7Rck9f7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bvyjF7K4; 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="e7Rck9f7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bvyjF7K4" 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 679C1RjP3838650 for ; Sun, 9 Aug 2026 12:30:57 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= 7YD+0nJhg2tipomjvVHvKwH4PnwKW0weQoAtx/YRHdM=; b=e7Rck9f7U7Xk0kkv lE7vbK0C70Av4myH8SXXOFIrRwZW7lAtF6vebC9IJDhPEVyU8uEtRk2IC3zqGw0x IpplR5sfrZBOs4eh0orYR7xNRLuHT4OJHt6Xr7Y1NVYUCdtBT58UnHiLFfnZ1C/h QwROUeCQGGXOrYOuvlWxd2xOjskmMsZXK7GJF4c7kgHYZ1JpoUwo3FFPjpz1q5cV 04zlWa5Ird4o+I6VnKatdo2gAN045ntui3eIwOjMrnvrDKf+h+eA/PPmXadnq3Pf Px5sPC2qfyICLaQRzUUmKc8SwfI/9a0VMWD4G29mgAaQsuZZ2JHiYYpPRcFXUgl8 16r+QA== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwt5gk2x9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:30:57 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-cb4cdf95b5aso2267518a12.1 for ; Sun, 09 Aug 2026 05:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278656; x=1786883456; 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=7YD+0nJhg2tipomjvVHvKwH4PnwKW0weQoAtx/YRHdM=; b=bvyjF7K4Rkp2sQzfJFs7torkzKgjrWQvRNCfZSLN0irWZMEm1N+rTpIGKD4xgbB7in ex4OZyXyASebu3gGodbgYZI2lBBSX54LIfoRS97PnM99Wpwdtl8HzVvJPTTTdXOY7wro XL65uDzoJ7YHRXr5pmSABm3YuoLk9U6UApspfybW/6Y98SlTjdEJfu2io3W31Obq5wtk J9RFTU52idc0Pe+NhMTulOg+T30jQ+fQALFZXlcsykJAsF/p2oWDsPMAM+p3Rh99W5KE puJPrFv32rcspKdvI3SWqMNChIqSz9PnwpJb0gh+ZOtIXHftb8+6VuJ2uC7wAWzTFxC5 706A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278656; x=1786883456; 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=7YD+0nJhg2tipomjvVHvKwH4PnwKW0weQoAtx/YRHdM=; b=HwHgtPxcvkYx2PxdhOyk0xuvbi44otiwIKoaG0h60x/tfxE290KjZXaWVtEhLL+ECf +wmuxbgRCq4ngYLzNpxMoEVWb0Nf8XhTd0JcP6MRdz43r4qrqgQwN+zg6D0x/8yrfBoZ lUq15phZ6gPgD3BvJXipOUHQqjLl8fT8tQn8XctCuu/XrBvvOAWIp/tTD5Ifr6PnGGsR CDICXq0MQpCotQMBurFvUQPlmWn5Z8lMWdYFgTugNBotOMUHvXA+gMmTobjonpjoUKax ptW3H9UMakhGs8+dj/TcMX1VP3dLSEghLpvSVFVDCaIVhcsPdJNeoL+1aii0+y3HQjdV e1Og== X-Forwarded-Encrypted: i=1; AHgh+RqMnskQnf2UK+5EQ1/JZUkUh+u3pW+b5eEz453IGCS9RgZjKaKmeogbc3bTMQVK9yZnla7x7SZxrFMbLwM=@vger.kernel.org X-Gm-Message-State: AOJu0YwMinVDdRgYEMZN/2J0VGnz/CwSnlbHTxS6BF6O5yFO/y7/0R4d Xu406Dp7UAsPIUmeu1y2WA9UXSiPHW0BehBOaCXyk8B6XfoNHMyHGrrLvLN85eIGaS6cVy/WV+t RkOBX2xKNLeg80htHyb1dB3bMTKGeJlU06aZJmi2tNnl1aq413L3DHVWfEpbB0xF0UeM= X-Gm-Gg: AR+sD10E/ziNzMvRMB/YwqSEwFcVE39/R0up4FhuaEmbdd7+ECT65aUol/YmINEvr2o 262K/FnLQdKeVwFOXNmjHJxcWmimGA1Mf70CiWJeS7FBFbKRs4eg4EBIA1yYunMOzFs65C7LccY /MVwiCDuUqtOoml2LGGR/KOozv0IeAKuPMYuaz/TdLJfhbWT02MCRfCbPoGxXOuD+Q1BE1oo6JC MbdGQ0Z7sG/ZUZQa9bk93rYwQeiz1d3aNT+pyIVjAgmHfS9/rJ8q5rYsq05wyfFAJXWhN4UBpZI EJ5M2jRkTEy25GfCrH+27/qXjxLZAV74M9zN6+Mzemqz0Eec3r6WBzKYuJ1tO/emfvtsbO6xVlk GmPbJas9fsyF+3uK6AIgyWLvjkB7BtA== X-Received: by 2002:a05:6a20:c91c:b0:3b2:8685:1473 with SMTP id adf61e73a8af0-3cbc0103aedmr21463741637.7.1786278656407; Sun, 09 Aug 2026 05:30:56 -0700 (PDT) X-Received: by 2002:a05:6a20:c91c:b0:3b2:8685:1473 with SMTP id adf61e73a8af0-3cbc0103aedmr21463673637.7.1786278655963; Sun, 09 Aug 2026 05:30:55 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:30:55 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:59:02 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-6-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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, Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786278595; l=8007; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=zu8gupPC5A5PcDFsGHMjuTQqaVyyOo6BMNe0DLfwd9A=; b=dz0OGi088BybR5zzhMHRgn+99FZsBtqLoX4jKx7GoDRSWOptH0nOfIKtSo37nCU5/tPXboV9p ZJLN3gGUiXABK6FpXG0USgsQ1OqY1Ss8cDmbe4cWTzBq7suLOkSACrH X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Authority-Analysis: v=2.4 cv=c6Cbhx9l c=1 sm=1 tr=0 ts=6a787301 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=JpLBe5vfuqbXlpy2plQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX+QVSm0Ojw9BH 8Y9VJfgNr1bpFwoEKjrNSSbFBLfn8IspoB/gq9AKY8w/pQUdCutG46nvwgztPpoPgnNa6GYsDRO xhm/AZUrJnXD0I+t0WoDIHY62QzETek= X-Proofpoint-ORIG-GUID: OnNDbWfufBynjnrzxC6km9zCDxInSA9P X-Proofpoint-GUID: OnNDbWfufBynjnrzxC6km9zCDxInSA9P X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX0qixOwpy6yd2 x6SfOUqo4JjjdJMSd+hl0c5RcNDxYu/nWfifsK68WbsQqc1K+GO/LzRUE4Vpi8twGQYuKGGVJ4T CP/akgQHRyLKoHyfHJ7SXrKxIHUs7gQoHNu16F7aBV01tcHugaFA/TxFwkG4FJZgJ6nVfdO6uF1 uWppfAPbC0eYdqdR/XWq+8+pElPw1GSA19+ZRLJBJkszZgk+EcpSJ1y+cWes7lfRzc2QgDt3YcQ nsaFByjqFV7wYx9cyVt2KkPC3VqCnzjFqQhJCi1qgxudjrnrqHvhDcjqs39KLeTc9cgYIXaN+YY w7h4+66E24uZ4sbPzNGGd3HsKAmouJn+6kbt2ZrG16FsrHNbcMHaRA1nXX3TB2ESPhfCiqeNgio d7xwK/0+SWbuiCARt/Jb/iEOXZ8QA5Vl1LKAjF2AY+MCFnqVla+S77ImETupdc7A9b6d17B6HQ7 pd81ijWaJQR7WU9JbqA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 phishscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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. Reviewed-by: Daniel Lezcano Reviewed-by: Dmitry Baryshkov Signed-off-by: Gaurav Kohli Reviewed-by: Konrad Dybcio --- 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..2ca14300ec6d 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 Tue Sep 29 09:48:17 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 D787A386C17 for ; Sun, 9 Aug 2026 12:31:07 +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=1786278669; cv=none; b=EOOi4MV6bY7/vXWPyzjtnV9Ps//phPGGyRhRiUrSHqPUjECst/qYSGJHgjbSMtn+Ts9lUPgHkaEslCT48x3OLDo0WX2fwFKRsyQjOr2eETmF2zelu+hnMgVGud9ORU6WbwD1uB5VNSXmu4KrBn8PeVYYlMo7xUQmQNQTST8zp+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278669; c=relaxed/simple; bh=8jCvvQvR/TUK8TVzkPQrR6iOrXuHBCo0rM5hCiElzIA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LxckM+IX6oqAvtKtFVrGGT0boIzYkFf2uF/SM2S4I6SQC4tRRJY0jsmlsJt6IRpSNCVwJojvDzEBF+WtA8LJKyc62Lke2sJPkllI+9NkWRIZ8UCcwhIrSEwlKgYzEfFSUYNhWzh4oQ0go+xFtPlFo97oEgRq7019eCavlLgwXec= 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=KKjeGSC9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MUKPAk8o; 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="KKjeGSC9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MUKPAk8o" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 679C1j9E2396876 for ; Sun, 9 Aug 2026 12:31:06 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= wTHLwHQvEfPrSw7dqgVln+HLO66Otor7GBfQ5C0UNnk=; b=KKjeGSC9o/KyuPay Qgho/MdJ3cKTjaPuA1ylcfETISzQ/YkfhuTZh7tfNEEFPo1fAbX1vvcTm5GxF7J9 C2NWEZly4V1J+aM8IW3rUZbkNQq1di7MvgB2ld8j/ppTnlOGdFmJ7gp3u7ZlNl3y cZht1aG7jfoilXwpUn0kZNflZDXwpU6PxOTNbSYYl9vK4exScHM5pE6sSgryu3UA C7i+ZPOiAnQ5Ok/es/pLDDzLg5+eXKnTOHte4fjhp2mMsyWOzBNcEu3cTvV9gUM2 BIcXdjih1iv0RzsZsrsbdA/rvAApRR1g/WTD4OuzXRM4qnVWHTfRg5LoAVDNlCgw qr67bA== 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 4fwvu8jt8a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:31:06 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-388cfc4848dso1815237a91.3 for ; Sun, 09 Aug 2026 05:31:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278666; x=1786883466; 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=wTHLwHQvEfPrSw7dqgVln+HLO66Otor7GBfQ5C0UNnk=; b=MUKPAk8oM73NhyKsBprCF34eYXP3Ux7bv/1tDNNtwf0wBY/dKIwdeupUGXJllBxQfX reFwE8O41gv4i54gnXUKMTV8u5g2O3BgtcegfjCGxz9fKHy/K/n2JdEAz03AlHnqNdtC 1hWdNrloc4RZDEX+VNBN4Gsqht3PWk0Eiu3/F+VwhS/CoSBd4blCm9dvrxtdDxXorktQ 0mV7LJKWbapaYy/HiSuP3KwQ2wzpHG9BTTgQlGFN+d5D4ATL0yW0uqxXMgth721GYhLu 0HDJuXWuWGPDe1mdKEMW/5dcfYl9M/fMjMD+/0mNHX45xZ/9W7/FBscSqGZvTci7Gqpq yfXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278666; x=1786883466; 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=wTHLwHQvEfPrSw7dqgVln+HLO66Otor7GBfQ5C0UNnk=; b=ouad6ed0CMzkX3UO3tlbORyRBIaWqMDLA4YHUwnLiPtwAsmWMnNWMP3Stsw+SDZVvX 2LNZYw4hSibybv0KfZwLgGg3dzaqg/+NP9UXAfdgi6zNaJoUUaLELSyWln8HE65uULhG EChj0c5bzUPPrFjLG4C7YT5i207haD7OYT8DjYXINGDX6L5sdD/F/35+XWg9QMeUTPJp 75tzlhrpooesSfE32rQ6AeY90Sf1y5hX1OzDOsu4dobjQmZYhRgTX3hN+H8j8OZB9SVP zBm81cgKJCE/kwxm9Zhn6NpJ/jjEsiU1mdYjbNBf2ygN3/0cUT9tvtkQgEIWkH2rmoBa /8iw== X-Forwarded-Encrypted: i=1; AHgh+RojlVE9gV3FaN7KSJU5tfUAkZvR9Cl/BhdrWd1UZ2XNOzTzu8Bm4rk10BkhnOZ1JRHN0MGmtpgHz8mkLAQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzDSfxIoJOy5juBz9mh7oE5uFh6a9VaGaFhhNnL91JL/mqvsCDx prAIkydL4NZtBBfN8bA0XkjUwo7S3PiUIqbR6F6LR4tnADVfR91actpCWW8bfGiDm8QRh5JQ9Gk J8Q8RyrbHXuVRZ3Up/NhFmSNBP9vERl8xiWXz1eU9l3CaBU7e/Zr4JuDPfCB/MfLmtNU= X-Gm-Gg: AR+sD13gLW3QKD/lK3TGXEuUkHGwGfZOyIV6JN8NY7/9vD/qVrLNOKNvLkbxL7ahuGl Dk+FPa/GC2sx/bHbkvYs/TPDy6pMXkRpjdWlSuK/JrXtu5lSGVPkPJrOXkSHaIBl7MvfcqE+gqP p5y7cH5UGaS3ddUPlXZaQTR+6pAkl1xGJccf/5yYXNVdIfZAuiRCT94kagzWhNJA7UmLM0CnH1F YLr4tqJnm5NOLY9/Rm2LNdTSSd8k0xFxpYzYHeSS/kozBOtfMkOeWtRFIGqZxlNMW6m6V+0XmtV /ArQHCPcWSOKyf3/BWGBvnM9wH38mnMddyokt7ORmOraZNS+s3OEVJEnY2rzn0zfELLhSGtTAyd +DVkYvQn7JxEB0ioZ3iTmuLr28HnhSA== X-Received: by 2002:a17:90b:270e:b0:366:3517:1aa2 with SMTP id 98e67ed59e1d1-3903bb0cf61mr38221136a91.0.1786278665657; Sun, 09 Aug 2026 05:31:05 -0700 (PDT) X-Received: by 2002:a17:90b:270e:b0:366:3517:1aa2 with SMTP id 98e67ed59e1d1-3903bb0cf61mr38221073a91.0.1786278665146; Sun, 09 Aug 2026 05:31:05 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:31:03 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:59:03 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-7-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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, Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786278595; l=1994; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=8jCvvQvR/TUK8TVzkPQrR6iOrXuHBCo0rM5hCiElzIA=; b=Dzo8noRQqafT0JE0UJvGyqUhJ88QaRVYCMXY5JymlRwW5SCK8s6Nm707ESfmHwktpF+H7ffLa QakIG+rMiq7C/HacL7NIIvzlG4+jejuQ4ZFXIxwn8P0EzyBOLwU4vkS X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-GUID: oUfhHhhcsfvZvoIC33qeFk_pXw2nASwq X-Authority-Analysis: v=2.4 cv=M8p97Sws c=1 sm=1 tr=0 ts=6a78730a cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=ptpooaJMTZRctn2qr1AA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-ORIG-GUID: oUfhHhhcsfvZvoIC33qeFk_pXw2nASwq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX3NO9Z19dAJJU WWZbBgHMZPPIlWD+V5aO9aEXKAd/nQwQQzBCWQYQBrZgf2fpDOKYA2YLPb1WO+kij+e12iPaYAS ZC7b8fmuCSORC/UizRpeg778t+wR2qhgK1owHZMeja0h6up6HgC7e2nPQT2C07xGqNp02OPmUV9 oGejqY+eSABvtCVL4qHudn5yDuv5zOdUCPrAlxEaCrKSlwgA8O3JUXSI3bLWp/gPjqoJGMQxY9T 2oDwh5w1Pb301wXQ5SBSfw3SQvSjSUZ+50qwbym7pMJlKrO8qcRtxCxJRE8TA+reMPfUL/013iu CRI9V6UzJwm1b6m0JnaAHgjH43bbzgfjNuWF+DBzOjiVepDNRuoObMpoTVOgDQ3dZbGtRtyHmVX Wv5rX7c+/fNKca7aN2S2/Nu/a2A3m70uZUIeFHnGmHy9N++a7q2OL8RJ7HwJNfiyF3OrB9LR3JN /LsHvrZSYGVcLVXTK8w== X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX+ew/BsZOee2R LxFFFlxGrvmiz1Du07b65XtKQWjsxwLsGot3/RsLZOlNLtKd9N1Rs8x0s01id/q3PmmKdGTsMjz 0USEBRg5KO9LD4h0Pzm62HavABG0z5o= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 malwarescore=0 impostorscore=0 adultscore=0 bulkscore=0 suspectscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 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. Reviewed-by: Daniel Lezcano Reviewed-by: Dmitry Baryshkov Signed-off-by: Gaurav Kohli Reviewed-by: Konrad Dybcio --- 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..0fb7cb8e9f64 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 Tue Sep 29 09:48:17 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 767491F942 for ; Sun, 9 Aug 2026 12:31:15 +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=1786278677; cv=none; b=hi8YhurI9IVswWAmNRXJzL9Do/MFh9zBHt+zB6ZHrUAawtDCMLKZPAI8eTCFh0ZAeYVsdwzYB5ouN05oWOStJlnAnQ21972KDdA5MHvcdHvgdpWptBuM+G4234zHvI/8VK6JrGWLMf0inhaA8FB1tPmzb+8ftvyTDjxXWCeNZGc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278677; c=relaxed/simple; bh=A/ZlkhpKXOXspcZO+2h9v+w/LUVpdAPN+/yLddIsV6A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eiuiTX9R+AMMT3G+DEdNpVvAJks9fgeiWmpqsuMaTZcKkjtyLrXjGHKeQcxze6iwADPs2XqOXU9/0DDZgk0hyKhe+esq2FkqN8E1+VaXKbdJgZu3N9Wgd8wi7SVmbdA8+/uAyK+xZ99NR25rP/jfuEBgIT4L7yG3OSmGeTzV9GE= 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=p4Optehs; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=As+bKchX; 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="p4Optehs"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="As+bKchX" 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 679C1PM53838562 for ; Sun, 9 Aug 2026 12:31:15 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= STAmXKRhhM1PNoYloH77abYDI2FiolvS4IlxwlZE50k=; b=p4OptehsX0YIjfrQ 4Ki87YZ+xuhhXMiCZ/J4nB+AIso2tWkQRVkjbMqoxkXBEUaolrJ3O2Ryj+jvgUvR wWsxY+KXI8G7RnQq7MMnVtg5xg/ARSJ+NS8bHQ469T1IgYJRUozgvM4Cf0pIPWjK QKdN/p79TSfoaEtPyISRvjLvWtqg5O1UR03ae0LwbeAbgl4DN3rkCN9IglwesxSC j60gPFQhf7vdhCcWJnv+u650AKXRk52+IithhFAp56uyKRJyMzXLgy5IzZH7Eckt 0Atwr7qFAENjO48xgWCV15Jv22X8RCql9v6HJFl29Mcb27nIuWxl8m3lJ7G9T7lL Am6CuA== 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 4fwt5gk2y0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:31:14 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cee1ec30f2so14373285ad.3 for ; Sun, 09 Aug 2026 05:31:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278674; x=1786883474; 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=STAmXKRhhM1PNoYloH77abYDI2FiolvS4IlxwlZE50k=; b=As+bKchXCQys4g1MqnT/zK8wKQY987IXwVBpH6iwMr83/IxoN83BVtB4BjxBJg0ZI3 0F42QI0YOfhSUmuO6caY+uQfJLao8FJBakML58TfEN7McNtVK7JxYOwH+aUX3E38K7QD uiobAbJIauJv7YdD1HEE7j8lzRb8E3LuR1fCUw+Bjf5FkE2TavaircKEx3j7i/XK/JD1 tyrUY1ZgoSWqwe413KhXZWMGLPRwCPz7xWQBcw81yWqoNj/zD2FVe/2rvbdYI53K5PIK UtAt7PdyGQs9/eICgLCyTMm9c0geTcxmI7a5e6L7G95W/qQlxOmQZ0qr57WPbq09cVfr epOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278674; x=1786883474; 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=STAmXKRhhM1PNoYloH77abYDI2FiolvS4IlxwlZE50k=; b=p/bFn5/qKSoB/3FL0430D4BA79sH2BVBFqpaxsoBNLACpz77eV30fIR8FIMNg2Qz67 fL4wj2BavL/v9exWqpGzdReLRVP2JubDJhObnB9linQGgOIIOXrmo2+Eq7/zf+Z4L12B T5PF5pO/an53gfYE3etE6RUMjX8d+exmY1xLv+yf1gptxS1diGjzy8NbT2uFnE/H8+oP Swv4qBfPVEM5omOLDp0b6bN0XvA3VTe/WRN5yrRrZ/qM6ay4yR+l+knJs/kcy6JmCW7E xXiGQ/cBWpopO85/j0r0VT5DOpLbRRydYcWGDowML7XmFcvDurPDulk/5GZAH9rbdC8B uXpg== X-Forwarded-Encrypted: i=1; AHgh+Rq2L2hBYd8CP7JZHNl6H24F3LfRjSQTbq0NGWu+8g5QRb3OcEeJHMCRxAbuvf6KoEi/Y2k+NEuWQ9rzzuE=@vger.kernel.org X-Gm-Message-State: AOJu0YxrhYLKsnKzfurx7tcNvj3DJK1BgetYUkqH+wE5iCUkn4noU23n 3j2hTGJ/Gn8kqOtNdQpQLWNDHTT9mz5nrzS4evVOv3bKq2JGZ/txM+7dKp4prsbUAg6accjW6UJ Qs1cXzksGO84/nAatF8z3/6EI0MD6RtfuW3kMQkWZePyoTGuTeb4f607e1U2GNZRtc8o= X-Gm-Gg: AR+sD11mi3QY55CxKRth7t5ojfHET0CPBqOz8GAn9HkT3l5pan12EAp3O4K3XICBaAt ZhDlQ9+SRI3u29a7Wv0adANJonWx+z29VLl2EScBZ3Qs5tmadV6XgSGc8jlezs40M3p/ud0H8di jFs+KcEnMYrXS36uhoQ8fzKV1dkoE7pez+gWja8DcTrrQ8nGDdjMysuxC9nzIgzwjFAo1EjFsL6 SnFOGAxa5BitCacSur1+dtAqdZOwsiX5px8oo03jPaa6De4pVVjpV6+gcIlrQmLdUsYHogBR5Z1 xS7rrUQcUOtlqPJmqEF51jxdUfgALenWOIfNXeivhbmUOsNn4UJGE+vzEEw4OGDTZjewZwRuvZn b/afnozf8HgE84uZG+g4kPmBXfvxC3A== X-Received: by 2002:a17:903:985:b0:2c9:c952:6e9 with SMTP id d9443c01a7336-2d2a8458fdamr173706795ad.2.1786278674102; Sun, 09 Aug 2026 05:31:14 -0700 (PDT) X-Received: by 2002:a17:903:985:b0:2c9:c952:6e9 with SMTP id d9443c01a7336-2d2a8458fdamr173706275ad.2.1786278673667; Sun, 09 Aug 2026 05:31:13 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.31.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:31:12 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:59:04 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-8-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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, Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786278595; l=4988; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=A/ZlkhpKXOXspcZO+2h9v+w/LUVpdAPN+/yLddIsV6A=; b=DlmOZROYsvhmBPP+o1mpIILAkZPge04dcZHn4SlZSMk4gFLO6ssQ04zG2Ax1La5gmqkcgfLdm 9dN2VHCCUjDA7uOFxHvJYiIpuhqeGJoefbLZVscrF8CI/JsgmzuLfCR X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Authority-Analysis: v=2.4 cv=c6Cbhx9l c=1 sm=1 tr=0 ts=6a787312 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=ND7YSEQ52W-Uskv0B9cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX9sKf91fGSytL UV5R5Bcap3vj5KAVLnhQiYb1XwSAT+cTUOpS+hmAgLdCyv3OfpkM+izGsmBM3WmJzYBgsYXD1jC 6s35g9idomIkQRvHmqOPG/xFUkmo+II= X-Proofpoint-ORIG-GUID: E6FhNxRqbfRnCt7oc1f1IxTNlUokV_WN X-Proofpoint-GUID: E6FhNxRqbfRnCt7oc1f1IxTNlUokV_WN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMCBTYWx0ZWRfX90QXTx4BJh/X rSatHUCgCj9IU7gS34Nlf/QnPUX7nfsrjn9ZIVOiDr2YXcPBesTo/Lo/wdDGDWQty88PnRMRDsq bHhBKxJB1qUoMiWWYIpSw1oYvIhjirUm7YoA6nSz36rdP0XI5g2JWLOPtLQc0YX3JgBCR/j4v4K pn5ZjsHklrWuzvM8VIC02ApPKbLppGuhIN6qS4zXrzlraWWvNa6WJj/VUEKlnBCHnW5APb1VTWS jxmcmzZYyGL9hszd9khUgYWtyL8Gl9RMiTyXgGP+n9fP/nY5Ji+ojlkiu6q5o6kVbTG/PiKl813 mI8/3U+v9j6mfU1BYKb85PGLA8ZFdRdZKp10OFnhoR/DLSzUyNEFELEHdXOsYXuxrWAXPxnBMAc 455bEnM7Fw87qZzfgk7DOF6ZxVE/JrrIIn1Q+7ccISJstt2nZGGtb0paLWh1B/3ssHndLheGkHW JWXG26kqpcZWtd036xg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 phishscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090110 Unlike the CPU, the CDSP does not throttle its speed automatically when it reaches high temperatures in monaco. Set up CDSP cooling 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. Reviewed-by: Daniel Lezcano Reviewed-by: Dmitry Baryshkov Signed-off-by: Gaurav Kohli Reviewed-by: Abel Vesa Reviewed-by: Konrad Dybcio --- 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..3f388c000fbb 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 Tue Sep 29 09:48:17 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 0DB26379C5F for ; Sun, 9 Aug 2026 12:31: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=1786278688; cv=none; b=t+XaOFLBR1NF+N4M51BlXhQcKT2CL28Q0pktn09gzn87iYYMWeTAnAy7trn8iS4ioKkFXNLgcgbgghGfKchpjNYpBmLbC3ckd/FQIaOfW2F7d772kIF1xtf8E1dWvEpeFVOsXzONPCGt1jlsMpWHkLN3JzDDhTfTB3tJlYQV07Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786278688; c=relaxed/simple; bh=AzJCFYrrHNlxF+EH6JmtU4P4T/A7/7TBDP0aqga0oT8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AUuIt8bjserhgOcz63eS31ZuDSxghXUDwmlZO7fITGzZjxgvGm1/b3fewP/DeqMy36oAAQr4ADvkV558/XW5BON3ubq739kshmU1QtbzRK5jn3pJjaup8/cUqA88zqZMcI+P7bfwErqDlPjy7tQsg5GbBCvraaoTE4OZfpoNQFo= 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=OD7kXggD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KpbTdmMG; 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="OD7kXggD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KpbTdmMG" 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 679C1a7h2369450 for ; Sun, 9 Aug 2026 12:31:24 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= LWX3F0GSTjVk/yY/cfgAK+BwJoP1KATjvYxQjnG9yzA=; b=OD7kXggDldNxoRNe iN8BT5CCDqb8d73qB1V7nYsqipt8t2osPgs9wso84XsOzczmG5bp5LKlcYO+Cmkb xqQwqK7C5/Jd6mxh6i/i9u77C+t5/jqNNF/AO6houAzuCdhLoG/OBVFcRj+Fbiz3 GPHL/kpZXa2WxhE3FQuROTRJmEaJ01A4C6bozR45GRv2JGGN3Ohi8E1uDylw16hQ Qgt1JQDYZaDOUvmGToupSQ6y5aK3t4EOmSaMdR/f2To4qig2u8i6fFjEHXx7eXGO u0l6QuyxBKNNlxOb3M1yINyrwgD1t0Nq+QKK3+JP6k1phooXbHP5AKQHGbdXsUFC bJ70Ng== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fww7ctryy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 09 Aug 2026 12:31:24 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38e475f83a2so1826029a91.1 for ; Sun, 09 Aug 2026 05:31:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786278683; x=1786883483; 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=LWX3F0GSTjVk/yY/cfgAK+BwJoP1KATjvYxQjnG9yzA=; b=KpbTdmMGiVgjW+jZszx01dXNf2wAYxE46Yk8YwxMut+u3nJxIZ5H58ptTQEHSxacVh Rf4DRNeK1CapCIUYvwNEVtaWTx4sznlooxYpUeuId4VMGA87NM8PKC0geypackKTwUEW 8Ww36BqsV++H0rGrrqjfWSOdHPSpV236G/jdQIbzVc3Zi17XowP/8xAh7ug3e+roqfd1 HQwuSt6ReAOx3oCr9IjWBaM2dRAmwoS9R070f6CeNCRKmmIyYtDkVsFYP140eAv9h0Wt TC1vsSq9l49UP4RU1SqnSDlNB9MsNG2EUUf/pxV/b8bXfUmMeDKWfewUQgA099SWC8hU BFdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786278683; x=1786883483; 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=LWX3F0GSTjVk/yY/cfgAK+BwJoP1KATjvYxQjnG9yzA=; b=cXB83Wc1G1gb8jPV3YDyzGzHe56JubPVpkACdsXGUVWjJj8GLCesy+hH5chQci7pQ3 mSAvMZPGz8FOwk0jGpiVPw+J40pMA3ej6t+0oVEkphfHIZCWJlo+8l8TG5AIp4duQC2Y qs9OnOnB4vMh0XFvjZ+qqzo4UGPfWXZYfc+10ZSlZ/13wBnOvCy52CmtlxXjd+MRmO8M ymzDxUAoHxEHpK0WVBle0vIneSE+Sfq3Jmnjq2ESkrkgor/LZAoj5HCCJ7TMvPiBWZ+y W4UeGUt+C6ze/i41bQPGNTcGRU0Sizia60k7UGlpq0h5Eb17BUG3Ud2G5CVOK2PBiwPS F87Q== X-Forwarded-Encrypted: i=1; AHgh+RpWiXoT0Tn5P7KSrj+D8D41+OhFpwCGgWNkyZ7tUjZlvxB32aH8jU+FSAiUYtNdpvNxmB+6CCrS/L14Oiw=@vger.kernel.org X-Gm-Message-State: AOJu0YxCUa2NbO6mz3ezIGYY6hAAVSgpOHwy75dXmNy43KDF7CECvygi cfpjdU54m2tnnbQXP4Wo4uWyLIVU/MzpbxPvjyT9U6jdI+BGXEQrezPXV8EsZts3Yj9WjCatlBD rG4P6wgoFl8wOFQO16Kht1rdYv2PgSbluj2KjpVj4G+fyVrKItfaITLc4MuKKhwtujaw= X-Gm-Gg: AR+sD10QgasM3wjvSWcHIOUS6NnaMTWZRTUMdRYhTiRS0mE2cM31UAkvE9vcuS+RwTM 08K/zzB26eXohVWtZyvdmq3PISQKjGOrM0M4PFhk6BC7YlfRfFGjuFNJt7isepTkjH3vWIFnQUF BDsSajVvOodzec5B1eOsLT0etVFlM32S2UNVj6Vl5KrkgyLpnSrdpOBjM5RE9iDkwphTHWNTGEQ Cq6CS0lQSmn0WmvIBu1NVDobokg+oVgUkS5k+cCnwlkJbeUQnhJ915Ef7o7DFkujxaVR+irLbHr 9lgaAcqJ7L6vXA4AoSJpQnyqXagtT4CFIEkuWvZ1+ZxQSsBmCfkrfN2VUs1hHep5d7TR7c8tDHQ tHxGhB+RZKke9bkvA5SAf9tZ+Ky5qfg== X-Received: by 2002:a17:90b:1e53:b0:381:a766:efcb with SMTP id 98e67ed59e1d1-3903c54cf2bmr33627416a91.4.1786278683110; Sun, 09 Aug 2026 05:31:23 -0700 (PDT) X-Received: by 2002:a17:90b:1e53:b0:381:a766:efcb with SMTP id 98e67ed59e1d1-3903c54cf2bmr33627337a91.4.1786278682604; Sun, 09 Aug 2026 05:31:22 -0700 (PDT) Received: from hu-gkohli-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb88413sm51842997eec.18.2026.08.09.05.31.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 05:31:21 -0700 (PDT) From: Gaurav Kohli Date: Sun, 09 Aug 2026 17:59:05 +0530 Subject: [PATCH v8 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: <20260809-b4-qmi-tmd-v8-9-b15d47adc379@oss.qualcomm.com> References: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@oss.qualcomm.com> In-Reply-To: <20260809-b4-qmi-tmd-v8-0-b15d47adc379@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 , Abel Vesa , Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786278595; l=4803; i=gaurav.kohli@oss.qualcomm.com; s=20260302; h=from:subject:message-id; bh=rRz7gXL0+aFVZQwwc2LHNTbqyQasNRn1gIqhoME82bE=; b=dnr0CFEvt7TUyY3qz7hT5onfOLg4TvRGcRSO7GTc1NNT6ts6idR94a+TbptlA5o2XyhJ1OXxM fC8vUyVmkccA3esDyJYQdrK6Et50R5bld1kePlyaidfoGdDhvE7y7uA X-Developer-Key: i=gaurav.kohli@oss.qualcomm.com; a=ed25519; pk=IdNsqe8rWsF6dbpGHfwPEH9zM0nbOdRH72HxUT9qPak= X-Proofpoint-GUID: 4c3MlPL_ha6Yk-TtjwWZyJkMioZSDxB3 X-Proofpoint-ORIG-GUID: 4c3MlPL_ha6Yk-TtjwWZyJkMioZSDxB3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA5MDExMSBTYWx0ZWRfX5bnVk3Jd8kt+ v4SILWgbxZkphyaZH/Sb7JOoUdjZttDsz7rXe+kp0mW5Yyk0wDyTy//y48Kak+9uIaNhI6XUyrW RuiRPOSBYQ55Q6ZflihStrdJnIXZDluYNvfLtIwgGinG1Ffm/Eh4+sfCVR93eReRdxZNv/BNWBH KC5EobNjq1Wt165xYclkys24Hg6H0Oh2EMhPUCfPVx+JzrFyrl7ErvAQ9xBQX/SajExmDcO1hUL pgGEdGu/knXy/uT/q2HrRgAOWuI9p2iquy1iVixfc8YrbPcR+gmBwODIlFmHGYPfDL8ZlDnrzvP ++2nDFYsz9qev8gdPVUbtYxUsPiP26PAaS88+N81y2El+K0o4+kAW+Gfem/GARz/ywutEHaVQsH mIp+CsBvVEqdUFUS4np0pSfJ8F43jAWzHNPcX4/wahcKvCdZaV+A9KCz3cow/s7H1MMRCPY9Qf6 4iicYkwUtH3jt4wKAhQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwODA5MDExMSBTYWx0ZWRfXya4FpGfw7lqe i6ETWodmEZ+S74iMc5R1Q/s9lFuBxRKPX6NLXFxj4Qq3NJBVKPVwGxTMQpfHDZUMPtWj2HJLZeI g7qixXw4MsgLNMfjdvar+n75b13/Q1Q= X-Authority-Analysis: v=2.4 cv=IPsyzAvG c=1 sm=1 tr=0 ts=6a78731c cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA: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=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-09_04,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 bulkscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608090111 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 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. Update the NSP passive trip thresholds to 105=C2=B0C to align with the higher temperature specification for Hamoa IOT. Signed-off-by: Dipa Ramesh Mantre Reviewed-by: Abel Vesa Reviewed-by: Dmitry Baryshkov Signed-off-by: Gaurav Kohli Reviewed-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 16 ++++++++ arch/arm64/boot/dts/qcom/hamoa.dtsi | 63 ++++++++++++++++++++++++++= ++++ 2 files changed, 79 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..5d9e1a1b0668 100644 --- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts @@ -1685,3 +1685,19 @@ trip-point0 { }; }; }; + +&nsp0_alert0 { + temperature =3D <105000>; +}; + +&nsp1_alert0 { + temperature =3D <105000>; +}; + +&nsp2_alert0 { + temperature =3D <105000>; +}; + +&nsp3_alert0 { + temperature =3D <105000>; +}; diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom= /hamoa.dtsi index 09527dcf9576..ba453c8ca80d 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