From mboxrd@z Thu Jan 1 00:00:00 1970 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 1C0282DA768 for ; Wed, 29 Apr 2026 16:15:01 +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=1777479306; cv=none; b=h+FjqLjFIX8pABVV0nZx+NC5XrYtVWcYwkuxYXNKLmtOPbHd2IysEJUnKgb96zcSxNH/rWXlKmSxfl6za9q0DUGw2H/BtBgRAkUO1Ve9DpC0me1gMsCsgPdNUoDOCPDKLN/KM8s/hzKDCNsnyQ/1HYZ1FYc3uEpnVjPq/ekGBzs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777479306; c=relaxed/simple; bh=fySGrZIShH9MyeZKFigUBZwml8ANCT0VYoS7eOl4p3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qwRPnFsIhH7WBrctGWkmu0yK7bWAcrbRv0RVjumQB/SYbKXSztFAaoyjMXu3sofi4IUgzWEcAxW4qapKLSCAZa6NSlRMgSHhpKdS4sAKyd7wtsueOmKMDbWXrueR9WSzsImjf2yEbehY/I+QMqBzRpSCd3UzASi//9uNfwUeTqY= 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=B4flvHQZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Zm60xz2b; 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="B4flvHQZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Zm60xz2b" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63TFKVX12095179 for ; Wed, 29 Apr 2026 16:15:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=AE7tUJMeByc QH5jUTrg9HLnidqspvmybbPI9mAEDiXI=; b=B4flvHQZoUOhFVlQ81KmQ4CNeHL wuoEDAXUbPhqEizeraB/WXQOXq6vScfVTBKLqKh0zt6VAJOrN0pfgcJuVJsL9aqh H9Xk/MuSCXWo5IxNmKqioqfNXqRrCagawE4Pc1EVc3BhHFXuzITNvXTudCbSK0xW 9BW2QeYc0ltLq4gFefJthGFIuQFi4K1ogE0cHkpSMVWDEbDreQLbEXYl2ihh8r+4 MuGHcJTm2queiSy8cYUW1s6HF5ejup41AfjqtTgzbxx0it4iHgHiher+NmEYxjGS t9ci6bhbZIxMOXpcXTJl8xxEHFdfbFOFqIE5XxVaEoBxDUXOOLykQu9mDog== Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dudh3t66n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Apr 2026 16:15:00 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5675cb317e3so9969412e0c.0 for ; Wed, 29 Apr 2026 09:15:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777479299; x=1778084099; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AE7tUJMeBycQH5jUTrg9HLnidqspvmybbPI9mAEDiXI=; b=Zm60xz2bA02EXB9H2Zh0Z9gdx2gDgM/wa6wT/jw3kkxKlugSHXKs2TpBrEWR/nZekH rH9M1NT0NYbCC70UKLBRBosHnuERwM7/WPTu6CWXZfDbe6qprD8VHGdiUYOjK+VrFU0c SEbCPO7vGO2O18272HojM/Al9kcql7fOt/9i+SB7GFRfEeLLIbRO1hNGEKFM884+4BDW 7b4DCp9+LLQ9huC4gc7wmey+WfuS1TCmDEvCeq/08bVaxc+j9aANM7UgRRlYF06Sdpel Cl/h1GZ8rnLIQJ4o5kCoe4rTg0uX9UWAQdZpIU1+cPfB30Tc7EkVIyh8pdJ5hJc8WkTP t6ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777479299; x=1778084099; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AE7tUJMeBycQH5jUTrg9HLnidqspvmybbPI9mAEDiXI=; b=Yz7cwHgPRSv9JV7YCCJafR6fo7ejAN1258WpRf5CMxdUCUcGDep8zAFRoKi2mQCjoA yGQ6fFFGJcEJT/Qyt5L5iYAlbtiEyYAOahzBjz/tZJT0Ydi2WSXRYFY2Q790Vfhwpcyi iXAw5bGYbN6apPtvPPoPO1G60ZIkoOTq1ydAIXLURWpTBrIIRwttWv3ywUqttW+YNrER WIbfKAbVNhzrsN+rdezgcv3SKnVK9DNeLOlyE1ZPL7ZuY9iba7KOpmx7pBKzP3I22Lid WDvDyKR0yIm17OZ/eHGFwDXE1KrMuxBbUWrozjTJrw8Dr/jSDN75U6cW0S6l5RO0jNmY SjnQ== X-Forwarded-Encrypted: i=1; AFNElJ8YIdkg0UjflJU1BAFpgHICZYubTWoZChQBz0PEsgKgHvV2lp3DmhMrOvsCIwWZppMiRzuSpFj7Ha+WPF0=@vger.kernel.org X-Gm-Message-State: AOJu0YxlK/BJC+QSLApLw1rgwwHB+et1wB222nvWuxS/QWqC6ogUmuMM HqW8eOS3jZtUaA4IkDT+F6iV7AUTSSEUGl/A4mBi/wB+BkxpgNEfWhewRlByuZ1TER3U4j3r78W IUV/Vp0jdZYFms0ee5XFiau0RQpvplpkPo8UFuiKXCYXRr4GPCBYzZorKRC1Yq4tPc68= X-Gm-Gg: AeBDievdkZ3PfRDuBIW6TbbWiLYx6z0ypHg79ygiev6t7Tn/F4WJakoeNZz+AmPZ1hu kjYKAtpxCzD6kSku2icPtyASvMtwzAu3Ecrf8Ko8iwcwT45ZXSPQCheIyHJlcwORBk0ZNCln6Cs oyka25UyR378azlh/XZMFJe5oTPlQd2SlYOw6vi3nXYAPSYropvE1ijPpUOKTrjlNMamstPrEwm Lqch5GV5u4fEYvt//1YOU9c6zYgOxj7mWxGYWqkilPplJ7dOhUfmXzkijoMxY5q2dRFxLslUXk1 TacXJqku61dNxWEvNPZqnIYNm59psjNx9VtgD5GlikDAgywXHyt83NPvtsxYdElCVJWYwzdlKf5 Ad2nCdLJ5pz+nr3FTmyfx9RAyXIQqHqThaAf3gd80Z0KAgPV3jfxBPAXH75xG X-Received: by 2002:a05:6122:8b11:b0:56f:a3e2:66a4 with SMTP id 71dfb90a1353d-573a554f7d3mr5292046e0c.1.1777479299467; Wed, 29 Apr 2026 09:14:59 -0700 (PDT) X-Received: by 2002:a05:6122:8b11:b0:56f:a3e2:66a4 with SMTP id 71dfb90a1353d-573a554f7d3mr5291995e0c.1.1777479299064; Wed, 29 Apr 2026 09:14:59 -0700 (PDT) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:ae20:597c:99b8:d161]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a81ed659dsm2438525e9.2.2026.04.29.09.14.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 09:14:58 -0700 (PDT) From: Daniel Lezcano To: rafael@kernel.org, daniel.lezcano@kernel.org Cc: gaurav.kohli@oss.qualcomm.com, Zhang Rui , Lukasz Luba , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lucas Stach , Russell King , Christian Gmeiner , David Airlie , Simona Vetter , Guenter Roeck , Joel Stanley , Andrew Jeffery , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , Benson Leung , =?UTF-8?q?Pali=20Roh=C3=A1r?= , Avi Fishman , Tomer Maimon , Tali Perry , Patrick Venture , Nancy Yuen , Benjamin Fair , Heiko Stuebner , Thierry Reding , Jonathan Hunter , Bjorn Andersson , Konrad Dybcio , Amit Daniel Kachhap , Viresh Kumar , Neil Armstrong , Amit Kucheria , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org Subject: [PATCH v3 10/11] thermal/of: Process cooling device index in cooling-spec Date: Wed, 29 Apr 2026 18:14:23 +0200 Message-ID: <20260429161430.3802970-11-daniel.lezcano@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429161430.3802970-1-daniel.lezcano@oss.qualcomm.com> References: <20260429161430.3802970-1-daniel.lezcano@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-GUID: d1b06i40zEo9hpoifXP1t269u1ccbEML X-Authority-Analysis: v=2.4 cv=A4dc+aWG c=1 sm=1 tr=0 ts=69f22e84 cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==:117 a=xqWC_Br6kY4A:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=s4Kp2nOrnj-iCWvMcIQA:9 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-ORIG-GUID: d1b06i40zEo9hpoifXP1t269u1ccbEML X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI5MDE2MiBTYWx0ZWRfX0cHljuPcJ0SV gJEmHvYfG+xVGF7dIuzjcMTHUfkGXlF4tU4GY403WN/G53OhdK8wKON2UUD9A9FoRaRqT3UhS5r CLa2W37h3rwRNSbibxBczrBSCRqnN4KK/iKTG6o/Nekw3XdtepFgFlsU0TYJu5ZSU9hlnXfpwr5 hByqXoKyOQVTLh1bncKdg/xWVOjO84RnZwgp1Kb4kEKjj1sXX+cASghes38fvNpQJegi8hIgDzp EXbXaQfZr5rPMSKtFUs6xSP/xrgTLbC2X6+xRfe2NGgr8n5addS718OvEQh+2ncTIIaquMQiMJz s4dx/U6lo0SvoOqkCjm23QMHS7GLVb0ztNLzpwVA6s9hKOvW/lu4Z8dcdtURmcx0D5bjrkZSn/i 7drm3CC1kQ0Vhmqidzxb5QzSSWd1lO/Mdx2lsuRwQLzCtmfz2PyaBOsP1ZworHu79jL1Kaa/XpO 1k7r5EH5yoc9W2gj3fA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-29_01,2026-04-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 bulkscore=0 impostorscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604290162 The new DT bindings format describes a cooling device spec with the cooling device node, the id and the mitigation limits. Depending on the version of the DT bindings, in order to bind, check with the device node pointer only or, in addition, the cooling device id. Signed-off-by: Daniel Lezcano --- drivers/thermal/thermal_of.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c index c9190a03993f..1c944daebec3 100644 --- a/drivers/thermal/thermal_of.c +++ b/drivers/thermal/thermal_of.c @@ -259,16 +259,34 @@ static bool thermal_of_get_cooling_spec(struct device_node *map_np, int index, of_node_put(cooling_spec.np); - if (cooling_spec.args_count < 2) { - pr_err("wrong reference to cooling device, missing limits\n"); + /* + * There are two formats: + * - Legacy format : <&cdev lower upper> + * - New format : <&cdev of_index lower upper> + * + * With the new format, along with the device node pointer, + * the of_index must match with the cooling device of_index in + * order to bind + */ + if (cooling_spec.args_count < 2 || cooling_spec.args_count > 3) { + pr_err("Invalid number of cooling device parameters\n"); return false; } + if (cooling_spec.args_count == 3 && + cooling_spec.args[0] != cdev->of_index) + return false; + if (cooling_spec.np != cdev->np) return false; - c->lower = cooling_spec.args[0]; - c->upper = cooling_spec.args[1]; + if (cooling_spec.args_count != 3) { + c->lower = cooling_spec.args[0]; + c->upper = cooling_spec.args[1]; + } else { + c->lower = cooling_spec.args[1]; + c->upper = cooling_spec.args[2]; + } c->weight = weight; return true; -- 2.43.0