From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0C71CC43458 for ; Mon, 6 Jul 2026 12:47:11 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [127.0.0.1]) by lists.ozlabs.org (Postfix) with ESMTP id 4gv3xb1CY6z3cZ8; Mon, 06 Jul 2026 22:45:55 +1000 (AEST) Authentication-Results: lists.ozlabs.org; arc=none smtp.remote-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1783341955; cv=none; b=HsBmkx/lB2slD4CU8H2ks55CoGhSgPwgCdTAyr/en90QEczmxRJ2SZxdCZnF1pQiBk0qbfZRIPM6UmqnbvpgfVON+BIKJQZ//DIohgF4K0ILP0gWtje5YI5czJtNpZGcRGBwYCRqOyq8GErUNBmqbJhiMNf6HTxNYCVOXJ4qdi/YIm//jxkuiq2+BW/SlWm3GEurTPuLAK6J3QQUJOnZuXJAHaQwPp3pbDRJ66eyX3mzWiXshSJIkmu0ySoPHPuvFumxoyBhAhcSIVaepmB618oOGaxXBCNIxgfDZD5H+5jfXAd1Dj7QnNGwcY81OLCbjrk6Di6RlZkaG7ue/zd3jA== ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1783341955; c=relaxed/relaxed; bh=j94N3D67YZmp+yB/bJ2N7wl2Db8ez4ZkEgubeH9mxnM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DVdwrOwC4nrLyA/u2boOy9rFm2f76/z2joaSwT5kR0t88sSZncpgOS86+5HpfUZdfn+vNdHEkH/se6VXgDyAxqaBYnwimtCR/TQYzVU+E/qypFSE16iKB7XlWBEM9uUKDUTFGdYvx2gesfaOyrJ06a2gURRhUsuAc6hO/AKHvneD2sBFZjJniArWH/oIQ/R7e4mP1vByNUoUuCTK7PpiMbHTQlybP/z8TIhQDbXk3NgNWAmxclQ3f85ZRSVC34LDdcKAFKHjhANwOXzKQ38ManyjSBLH8ppEMnrF3jiIDo7UWLGGj6Z1aoZHROnx90aDPAF3bLS5dj1hGdBCXHXt0A== ARC-Authentication-Results: i=1; lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=mJEEF2hq; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=iHRXRVTa; dkim-atps=neutral; spf=pass (client-ip=205.220.168.131; helo=mx0a-0031df01.pphosted.com; envelope-from=bartosz.golaszewski@oss.qualcomm.com; receiver=lists.ozlabs.org) smtp.mailfrom=oss.qualcomm.com Authentication-Results: lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=mJEEF2hq; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=iHRXRVTa; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=oss.qualcomm.com (client-ip=205.220.168.131; helo=mx0a-0031df01.pphosted.com; envelope-from=bartosz.golaszewski@oss.qualcomm.com; receiver=lists.ozlabs.org) Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4gv3xZ3mCrz3brB for ; Mon, 06 Jul 2026 22:45:54 +1000 (AEST) 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 666AxH0U174785 for ; Mon, 6 Jul 2026 12:45:52 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= j94N3D67YZmp+yB/bJ2N7wl2Db8ez4ZkEgubeH9mxnM=; b=mJEEF2hqlR/uOjVJ VGxfq6X8Coeflz9gG17PG5AS1d8bsHMFXhdZWsQVpoBGNxPvBhyMKeuA+dyOCDVQ f1hfsjqCoXOdNFPJoAu72h5EhTA2RJe8aHAuVR3do6hcY/6XuWdPi5v4ABh+SBK/ rcNeX0qyntCP4cdXULNVaYmo+GOzB4IXw/vS1gy2FdSZK/epGthEs0eICwD0JDHC qLwA7MiAX+whloAu+BOq3pVZA9mRrwwWNHrvcFQktC3WPAB1dKapRcEh1XLp4aGO t0DPDKiFYVlnUQvHVG/TurGAk+efJV3NTROGxUtnqQUlu+PHgMshaUYjPMuJ3IBZ RMPGMA== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f87rxs9cs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 06 Jul 2026 12:45:52 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-92e695a3b28so387915785a.1 for ; Mon, 06 Jul 2026 05:45:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783341951; x=1783946751; darn=lists.ozlabs.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=j94N3D67YZmp+yB/bJ2N7wl2Db8ez4ZkEgubeH9mxnM=; b=iHRXRVTai82sJk2InltnuS3B601u5WFfbv4f45dJaifWxT0yR5tf+2+MC2+X84/Bgb 2J6b+WPHOjE4/ikAnkGDX7hzAVMcGleCwqijR1IU1uPGkMnZ4xzgXAAOjkqMjN1prZR6 gFTDx35f0YJTU66WV2IU1dWmWPhozUJFfvRthXV7yosS6pH0kvdPCXO1obpYPx4uKN6Y R84Q4To7YR82WcuMF+wSrnx0/E1Rbne7gk06i/zowSBu5X6PIF8N6vhO5KXmT/lMhrsR P+FII2TVG7Nxbts6Rpqe5FSr/v8dk+Wxm6wC0FGfS8bivfORyQlRzbKTBedQ6Q7AVRPL ysuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783341951; x=1783946751; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=j94N3D67YZmp+yB/bJ2N7wl2Db8ez4ZkEgubeH9mxnM=; b=GiKruK0GZ3XXzHY14t2jyhM0HnjQwnbtFT5K8THjE3imfNWS1514DF7MMPToAr2ZRI 5K4DyNXZpUEHoVYd5mQuYjELr4wZDmBEVzEJDm4wKwhfTh6TWh52vDedp/P42/hcH7yR 4DYPCsNmY6VM1AsvL4omXqwQhoAALRZ4IJVATCso/4KyCNPg3/Pbtk4zdf2d8Hgjn0Y8 R5CHbRIjGJ6N5ySrOhJMoMbcFH4khd5Kd/86AZ+xPzp2NtZLfJxD3/23RacFJ2fP1/Hr b6w0cOhKMitXaZKx2qOiRwz4ZNCkqKmYsCi46w0yp5115ESTG5ZdocvHs8sO7K+eBnDN kD0g== X-Forwarded-Encrypted: i=1; AHgh+RoOzVJvjRDf5QZl20VvRZeCF884lkzX5pbCQmgDR3923GOQfyipVfQndAr8zbzOVqSA6qaGFx0EF+kGhw4=@lists.ozlabs.org X-Gm-Message-State: AOJu0YybJXutn/v9Pr7I+vIQlFCfmrJERG4avN0PXIqJf2HmpF5MkD6O hqrwIPYO44QZvC+n6Zg3aoYHWtiKEJVSpWKm6jzZtVD1GcxYxSkzqIGHGfPSH16wWp39bGrUnCE 2lCFLYkEJ5mZQ+qd3KP7eKfEq4l8XzmRLW1ijTmpiwGDWN/wEEZQ9Fyhpbbjdu0PrIceL X-Gm-Gg: AfdE7clu9W0tVd7nft7MaFdW2sISB05dMfuj1vwOU2mfE8eeFS3S/Doap4EsHzXqD9J bMWA/B3DQwkMxbk7ksBqig585DGQ00KR15qxdGg7uvKIS0mZWLT6GnoL13qs63wgkGeALZzMj/E BKw9Di2nkA4vudfN3OD1sOfxo+1th8AV/z5DEg2uZEdjqFPlfI1he6oMg9gsSSMkPmTtVOtptsm 6wkPEiAM3GkMMWs3lF1gGBnaLVLp3PRsQqOdOa8xr7gBGob3RnEY8XpHjm5K5JBXk9sQ6kvNyaQ LES/3tT+er59Le5JfzE+a1GKvWZ3T0XfSBQ9P5TKsJWoWXvwp5n4hU3uEKOCVaki3enMEms4mCI 9bY8sHfuy+0/lxYDDu2VymYWaWXCr4AY4uPiQZ3oi X-Received: by 2002:a05:620a:459f:b0:92e:5b63:224e with SMTP id af79cd13be357-92e8b5049abmr1749182985a.22.1783341951090; Mon, 06 Jul 2026 05:45:51 -0700 (PDT) X-Received: by 2002:a05:620a:459f:b0:92e:5b63:224e with SMTP id af79cd13be357-92e8b5049abmr1749171985a.22.1783341950261; Mon, 06 Jul 2026 05:45:50 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:86f0:c42b:ef4c:d3bb]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47aa0a55be4sm22126539f8f.31.2026.07.06.05.45.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jul 2026 05:45:49 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 06 Jul 2026 14:44:32 +0200 Subject: [PATCH v3 20/20] driver core: platform: count references to all kinds of firmware nodes X-Mailing-List: linuxppc-dev@lists.ozlabs.org List-Id: List-Help: List-Owner: List-Post: List-Archive: , List-Subscribe: , , List-Unsubscribe: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260706-pdev-fwnode-ref-v3-20-1ff028e33779@oss.qualcomm.com> References: <20260706-pdev-fwnode-ref-v3-0-1ff028e33779@oss.qualcomm.com> In-Reply-To: <20260706-pdev-fwnode-ref-v3-0-1ff028e33779@oss.qualcomm.com> To: Lee Jones , Mark Brown , Thierry Reding , Sebastian Hesselbarth , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Srinivas Kandagatla , Greg Kroah-Hartman , Vinod Koul , "Rafael J. Wysocki" , Danilo Krummrich , Rob Herring , Saravana Kannan , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , "Christophe Leroy (CS GROUP)" , Andi Shyti , Andy Shevchenko , Joerg Roedel , Will Deacon , Robin Murphy , Doug Berger , Florian Fainelli , Broadcom internal kernel review list , Ulf Hansson , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Matthew Brost , =?utf-8?q?Thomas_Hellstr=C3=B6m?= , Rodrigo Vivi , David Airlie , Simona Vetter , Peter Chen , Paul Cercueil , Bin Liu , Philipp Zabel , Maximilian Luz , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Krzysztof Kozlowski , Benjamin Herrenschmidt Cc: brgl@kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-sound@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-i2c@vger.kernel.org, iommu@lists.linux.dev, linux-pm@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-usb@vger.kernel.org, linux-mips@vger.kernel.org, platform-driver-x86@vger.kernel.org, mfd@lists.linux.dev, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2537; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=IqF/4dKgB1628r62VJTRc6pv/7HE6yY73nomq/D91IU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqS6M9ruJ8yyUk+I6pdpFWbcAtYm5CgsYvefKU+ TywqoMuS8KJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCakujPQAKCRAFnS7L/zaE w0+BD/9zjT3fKJr7/zYP0sHpUApNtRCsyLsJzRKuAlcO+cogBO21GRQk1DGikSTFqOqALVvaQ2g 83j83HjHg+bMyaUlGN/FEHSMVHmKvXmesanFWRUyj5q/cQcFMH8POK0Xe3edFHZZx4BBkdJLCiU YBgV2p9qKU7Yx9ujTc0nbFflTLCPc+KLCa6XMeNIL7NcRgHVvMgBJocHY4ppEVSl3w0N1MqzNLN MJ2jEc+08OGTNE6VqBsWKGpcVcsy0c/flgXequGSLwF2lbMvrEVBeckaXblcohUFBgsZTwHIilr DuAyyAxwT3CWTsisqCJ/uzziDpBphBHYSMVHgzJR0EvF/dg0gFk2JrYTFDjipwiMhwshuY4pMG6 brBELDRVNzWmoJxvrqtCNEs2g6/282jmP5bq8VSGXsiFh0Tlh1WMQesFTI3Dru/rc0SNeU4rkul wq2awNwyKdDtNJtZDmRz22Vrcbh76dcF1Halbc2omaKC8QdnXDZFTtncn03dXnNqBcF2/RucoRD PgoRvdtJOI/EakLR/ayb7hAHHB2aey6mLr7a280QfJRvxTxQ9lcDY4ZxG2oeQyo5EJpmBhQCPl8 BmnHyLd2X+djvXjF8tGCWMjxCty1aDjcqXp8ApTdwR04CWKI/ZYVFf+bcapravEbsUypfWAAx2W 0i3DMYG/6NOmHjA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: m0wLoFSsPMi_NLApmXbbJ41C4YmXXi23 X-Authority-Analysis: v=2.4 cv=Hv1G3UTS c=1 sm=1 tr=0 ts=6a4ba380 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=2sGp0kyKjRk1obZUzdUA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfX0AMlYuEDKdkL ++37PNkdgh2lyYVjle6xvUwrKDgB/wttMkE2TBtaS9n03riYidieXL45FfdxD3msKOzmqWejFPe soF26Ghou9OFj5NqyItDD2GLDFNuMRs= X-Proofpoint-GUID: m0wLoFSsPMi_NLApmXbbJ41C4YmXXi23 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfXwNF8SRBrr5cZ SdEnNHsLck/uPKhhGK3htDKghWozol74rsQ9A3YNL4ldRPjz14/GRkgVuyPGx8/YXFWN1gKZWT+ dpA6We1KI4K/09zTq74GCQfUqgFdSeRFIHNijDodcwEQ4fvx4LJAD5FJsJzbgXsL+GjAeomlpPq pJx1KOktQeapV1CPql6TlUZWSpg0BkKD3n1/O5SNO1S/f1gQYyefVcGZHWCLpVAScdGAQCi7RIr vXABBqtxXkjE23oCz7P4AGyLzATqvpY7wPJBP2q8exbpzs6A5xVlx5aXyaSNYBKKVsyM7x0P20a +iufuF3J07bhnM57CgRcSGOqrPPBFcOCOVXhRhBoIMGax66pmM4K8tVxaa4BBf/2LfoUQdQu3ga gWsxe4rR9kH96Avs9zVZpfIeytFiZ9Ro6OVS9TrogTDfjJZsGi9X5OoUXE67Xu5ROsEkJYv94V7 6buADT/5+gcOlueCyfw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-06_01,2026-07-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0 priorityscore=1501 spamscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060129 When using platform_device_register_full(), we currently only increase the reference count of the OF node associated with a platform device. We symmetrically decrease it in platform_device_release(). With all users in tree now converted to using provided platform device helpers for assigning OF and firmware nodes, we can now switch to counting references of all kinds of firmware nodes. Reviewed-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski --- drivers/base/platform.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 9357942d0c79b032645035879b2bed3d53305b9f..a71015f1d915340aa01ebfae67196d4d7ccecba8 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -599,7 +599,7 @@ static void platform_device_release(struct device *dev) struct platform_object *pa = container_of(dev, struct platform_object, pdev.dev); - of_node_put(pa->pdev.dev.of_node); + fwnode_handle_put(pa->pdev.dev.fwnode); kfree(pa->pdev.dev.platform_data); kfree(pa->pdev.mfd_cell); kfree(pa->pdev.resource); @@ -712,9 +712,7 @@ EXPORT_SYMBOL_GPL(platform_device_add_data); void platform_device_set_of_node(struct platform_device *pdev, struct device_node *np) { - of_node_put(pdev->dev.of_node); - pdev->dev.of_node = of_node_get(np); - pdev->dev.fwnode = of_fwnode_handle(np); + platform_device_set_fwnode(pdev, of_fwnode_handle(np)); } EXPORT_SYMBOL_GPL(platform_device_set_of_node); @@ -730,10 +728,8 @@ EXPORT_SYMBOL_GPL(platform_device_set_of_node); void platform_device_set_fwnode(struct platform_device *pdev, struct fwnode_handle *fwnode) { - if (is_of_node(fwnode)) - platform_device_set_of_node(pdev, to_of_node(fwnode)); - else - pdev->dev.fwnode = fwnode; + fwnode_handle_put(pdev->dev.fwnode); + device_set_node(&pdev->dev, fwnode_handle_get(fwnode)); } EXPORT_SYMBOL_GPL(platform_device_set_fwnode); @@ -928,8 +924,7 @@ struct platform_device *platform_device_register_full(const struct platform_devi return ERR_PTR(-ENOMEM); pdev->dev.parent = pdevinfo->parent; - pdev->dev.fwnode = pdevinfo->fwnode; - pdev->dev.of_node = of_node_get(to_of_node(pdev->dev.fwnode)); + device_set_node(&pdev->dev, fwnode_handle_get(pdevinfo->fwnode)); dev_assign_of_node_reused(&pdev->dev, pdevinfo->of_node_reused); if (pdevinfo->dma_mask) { -- 2.47.3