From mboxrd@z Thu Jan 1 00:00:00 1970 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 1683B308F26 for ; Fri, 8 May 2026 18:05:17 +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=1778263520; cv=none; b=MsNOQAx/iRcYNB9hHN0GU1TJilKnDCqL9GOEgF/Zgq4eBYKw5CX+eA5TGa5VIH6ARVNyP581nxX7fB1Az4KOqEoK/J+mF5ERXlhizlsp7PG0ADyGzTcjLUTJOEOUCEpaGVDhgu9J3O28vIicKISMltIjJNROw8WE7LRSgScseBc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778263520; c=relaxed/simple; bh=JTOLL9d3J2M7CQtlACYHdeYR92eURwShlicAst1N8vY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=h3NR+1cVB9kSDzxaQHmX4QJqqs4wnRW2yLyYNX4xAE/fLJ8YOTLN5f8ptZyHIK/fOHJ9GCELAZ1PkKRtN7RC+yO34dbImfzZ5Bg/rsqRa65VF+f1c6XqF9RYpyyEMWojL2QRmqNKwW84AyaY46+Z5mZlBohq7M7jYUAeRD/bv0Q= 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=IrRwnxu5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OfrqfE5C; 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="IrRwnxu5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OfrqfE5C" 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 648G4DVm1093668 for ; Fri, 8 May 2026 18:05:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=qcppdkim1; bh=xvIgIYJ41skyqFgKEJnH2VxWPToCrLPXMzc FlpqrmFY=; b=IrRwnxu5rTopBRABvwpXxLWLx9iF+ipRq+3tChPZIXY3pzx/SVk jxTza2yutKvcCNKPAMTb/uQGm2LJ1yqwSPCzMicdYYdHcU8v+yKUyKKeWFCTEpmF A7cbmMN1GocoF9UOkbVzeBbcuF778AQ+T1EWSLBlVleUj11D0kNjw/unTnfE4yvO k/Gr85Mw+ru7FWaAjvKDbYivu1mXaybKpodB4Rn/Jde40/Yzl9IioAPuXH2wzkxE tyVWxoR8Z/udN3rU0ZZ2yvD1w8xJjhMtcymf5ku9ng6vmpScqjKYoLYhwUraADg7 k9VPuaqAunLO0wtbbXasibD8JWz5MyAEVXg== Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e1k1d0evm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 08 May 2026 18:05:17 +0000 (GMT) Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-63132d74847so2213283137.0 for ; Fri, 08 May 2026 11:05:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778263516; x=1778868316; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=xvIgIYJ41skyqFgKEJnH2VxWPToCrLPXMzcFlpqrmFY=; b=OfrqfE5CLYIh2OeSvmDM4p8ch/5p5OrD/iPcnIh7o2ezScOLvbjwQkCqTr0ymRrQpy XpNT1stkEg8T0bb3D/uiiClTB0oWLhW7R+VDZe/kiWtjbM63Vsk+HWPi8fs2CIT7oR0G b2qJIgQKEIicQ1BledN+6tkOV8jZU/CWhH8C9bf5M6Zgqt12qq8FYqk0vDZUYU1pDwO0 +MbjUe0ftzMOivg1GDPfHO07b7cYYHIGqPlWy9sglgDoE6toXe5LMyN93bJ9BD9EILst zd+qFuErgAT3wb/d2YJSw8ODfOY7nm2/TrtCX66krEMnFNcqa22kBM68+PpcNkNbFTFX j9IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778263516; x=1778868316; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xvIgIYJ41skyqFgKEJnH2VxWPToCrLPXMzcFlpqrmFY=; b=lNWfXcQX5dUWpZuDwscQQanHMe+ddAH66+p18j2HHX+4GhhhkbV3llygCLzUbfABi2 0eJ4N8xHo7XOV46zzy4SdRcypJe1PZzryTySe/4RkoVzqW2w4aGI5KmLXWR67s2+Dlrc mGiFxBODtsXoU8thzhAd6eZnNSbpevTsyGLuAWO8whg6qY4hKU7hRmBty4YdAQdoYwBE Hp2eXehtVqLiJQAsjg5U9b44fbXEHI2M+4kZRhPF8Mum6HD4VKMM7OVp6IubwyeW2EKf 7YDi8gEuQvEjx1jJ1TijtxjWzYtxCzwtc3/CgPgHdKktdCA051Dd5TpeKGT7tX93eB9W 5mCQ== X-Forwarded-Encrypted: i=1; AFNElJ/GlCakEa13WMIMelSMQy5ghTBMEa5tILY/xetxyAhIXKQmFJcXZNHQjH72KLlOdCMXl0bg10tCfX4ioj0=@vger.kernel.org X-Gm-Message-State: AOJu0YwfU8t5MDTeWbIWUtTjoU20TnGAjNpXgdacJJbRrLwtIbChD8mA jIRP2e2fY+nHaJ/sij35u9taCTC2Nailt8wF9XNAmvlbgje2KbZuy+vwZLQq4bQYSoBdxQSRK7R W5AHew6aHiD5KAGsixT5GnGVW+B2FlX+IBGiv4wgGrK8tgelUpDO8kApP2zQn5L5enrw= X-Gm-Gg: Acq92OHKKdCUgP7BeI70uUHc6ibMgkr++ILkrD4jFORlTEQZkv1w23Q7/0/ZxJn+tj6 GjmX9EVGEj0btbFGlnvhU5bVrEZYTKWT6io0jJtkzisEQoWzKyUHKHOsfW/bxvXOWYzuGUwQnd5 sYc6+jHqm8oVq+h+QwvJ06e12btUq9L5PYG6IxaeswN/1VWbP0l6VyDAMxzxi7POUEzFg+buw+m oBd831R4NnNYcWUS58/tlYAhtiR8no2R03PWIDf8RhqSaJVFEtnNoYPM4cKsGz71JfpRL/QR0qT MkSLTla55wLVjHXw/FMUTlPnOrIjUt5rkUDHokfRws0/UbILEyrlROpnqRYV6FMThs+o21hg6sw wfnauiB1x8UTV6YvwZgnExHXhmtlFfOr04WJJjySEj0wg5RH8Nw== X-Received: by 2002:a05:6102:4411:b0:5eb:fc32:935c with SMTP id ada2fe7eead31-630f8e75b53mr8355512137.3.1778263516325; Fri, 08 May 2026 11:05:16 -0700 (PDT) X-Received: by 2002:a05:6102:4411:b0:5eb:fc32:935c with SMTP id ada2fe7eead31-630f8e75b53mr8355458137.3.1778263515866; Fri, 08 May 2026 11:05:15 -0700 (PDT) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:cda6:5a1c:b564:d3ee]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e6dd32afasm11654825e9.5.2026.05.08.11.05.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 May 2026 11:05:15 -0700 (PDT) From: Daniel Lezcano To: daniel.lezcano@oss.qualcomm.com, lukasz.luba@arm.com, rafael@kernel.org Cc: rui.zhang@intel.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/4] thermal/core: Decouple release paths for tz and cdev Date: Fri, 8 May 2026 20:05:07 +0200 Message-ID: <20260508180511.1306659-1-daniel.lezcano@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 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-Spam-Details-Enc: AW1haW4tMjYwNTA4MDE4MCBTYWx0ZWRfX2CmQdrGFD4at ZbFtpnYOP4/4u96S7aEmWT17b4+elECTHJNEbgMZ8DtZKF1KDWlIPbWXh56yiY+wCPtXn1zz+0I gTxtuKVhq7TCPadk5mYEXJxGOseYfqK82gpRRIMUZLCNB44R8pfMWVRAa0kCzJ4C5ZYvTDgvph4 2ZppXghkOIPY9DAU7zN053pzSGTUEbNqiJME5PgiTLFDBtrJZIylKl6EEVJBQXbzEcfR1v7dKwl EzAcqmpm6kaT09iuA5HI3oB3JkTMvpRUhoB0wvEtjmZQCbwA3BZXjlat7d/K/NnOy1/1fpQIw6z iDOXLLv+cCmLRQIyR8LYrHDrwbzAjyL5jZO1qxZECRDPWtE9XXbGiA2OIDY7RM4gw9ClfxcJ5Tb zfU13fVCPsfHG9jrhuO2uAK5NCHM/ZxiklFZuXQi7hOTotQ5Km/+EqEsLHgKSj5jgGIWvuf8fX5 EvA8n/MBmZMMbFP6PQA== X-Authority-Analysis: v=2.4 cv=GLU41ONK c=1 sm=1 tr=0 ts=69fe25dd cx=c_pps a=N1BjEkVkxJi3uNfLdpvX3g==:117 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=KxbFjwlCNysaOuIQBKIA:9 a=crWF4MFLhNY0qMRaF8an:22 X-Proofpoint-ORIG-GUID: YxAs112gSJofDMkC1VQpDPLugKHRaXTf X-Proofpoint-GUID: YxAs112gSJofDMkC1VQpDPLugKHRaXTf 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-05-07_02,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 clxscore=1015 impostorscore=0 spamscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605080180 This series cleans up the lifetime handling of thermal devices. Currently, the thermal class release callback handles both thermal zones and cooling devices by checking the device name prefix. This approach is fragile and mixes responsibilities across different object types. The first two patches introduce dedicated struct device release callbacks for thermal zones and cooling devices. This removes the need to rely on device names and keeps the lifetime management local to each object. The last two patches convert the thermal class to a dynamically allocated object and simplify the initialization logic by using the class pointer itself as a guard instead of a separate boolean flag. Overall, this results in a clearer separation of responsibilities and more robust lifetime management aligned with the device model. No functional change intended. --- Daniel Lezcano (4): thermal/core: Add dedicated release callback for cooling devices thermal/core: Add dedicated release callback for thermal zones thermal/core: Allocate the thermal class dynamically thermal/core: Use the thermal class pointer as init guard drivers/thermal/thermal_core.c | 73 ++++++++++++++++------------------ 1 file changed, 35 insertions(+), 38 deletions(-) -- 2.43.0