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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 B377CC44502 for ; Mon, 6 Jul 2026 12:45:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6957D10E96D; Mon, 6 Jul 2026 12:45:53 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="mJEEF2hq"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UvaoFw0o"; dkim-atps=neutral Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by gabe.freedesktop.org (Postfix) with ESMTPS id 06FA110E96D for ; Mon, 6 Jul 2026 12:45:53 +0000 (UTC) Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 666AxCxi238124 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 4f88t8904j-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-92e63df032bso328986785a.0 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.freedesktop.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=UvaoFw0oq0XIsb0asiiEov915jK70IKzYJw7jTAtLt+lsY+Hguz+a27+k3oqBo9+RW 42y2TWiVHBWSTYI2E4soY8TSYmwkDnVYvoWoeqnTy+SO65bxlpBqfOzS62Old33dJ08l 0tlI9HQI5wKyZ8e52WPrMN2H5OZ3suB7M2YsCFZzpy76qLF/acZ+juS5tbFkdM61+aQ3 9Ft4K2Zk8r3hO62I8VejP72Q9wI4e/LbveGn45jYjkIbRXuUQ986hoD29DQyooyCfKiC jN/n7cRBZRdM/z+vJmZEOss0klMxcwIhzmwl33xyjvdc2NfUICPj/pla4Pkqsb31E0G+ ki9g== 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=k2ULYEYktlOu9NX6zUR7g3CkXE/+CXblVBOs2osbgTB3xTukOW7Fi4muHQ0soyn43F eSfzx5Yd2Bj0514LoUzoxWYvQRilZhDG/9AI74VgXN0RkFTeJScFEJdqHyS5TQXN7lDh zfXR28Mz9JS7F7pj/tjqRc6t88Cu2WHMjQiAUVLpEDkyfYfrcF1OeXUq9DC2GybGD+Lc gH9VfgyOGwqb/TN2VdNBxp2kFHt7Z+1UdPe3VAaO4ewESxhVCTZEQPV8tdoJJ7Nxy7Gt oq5pnALimtBTnK/9HdlkaEzgvmdtFHqwieTufYlRBTzQ9GV9TBBF8qTm0tgrHZLArVBe MUHA== X-Forwarded-Encrypted: i=1; AHgh+RpEh3F8oHixTKGzjXb1ICPCcLuvTSLeSrE3G3/7sZ11zBe1uGe5VyKyAkP4mQuGhhuSk8JsTTPOyw==@lists.freedesktop.org X-Gm-Message-State: AOJu0Yzxg3OCRoBDzZXdufyJYosUTrxNPqQwTpijXLZXiCnoVlkHVbSA +4ReblRsLBeOASTZxyKBRMHyhbHLXP0j6sBnx6u8zhdCy59L3BpcfdLTxVSBu1QuBif43BuLUJM Er3k8NiLk8tWvn++djEIo/86d1pWB77rnDqu1CpjlSjeoUPEwxOabR8GTvuc6Qf7z+4NvdA== X-Gm-Gg: AfdE7cmlS6fFXZq1yF0tVpGhAdHnRyocA9YLfV8VTkplLCHYOT0mDPA0j0mLm6WkQ0N 9mwRoIgQqcRhMzAnPrDNZIQAESOBVUJnRH/gqGEWDxiIPUKWfcd4yKRKJ1mGmCu6iNbYjzCJuvP NZ5LVHVKirpktR8A9TupmeYWNk0bUrkERCEPWm3AZrdQ2s2vlDGxo5xHxBm8NQ1WHeCNy4S7Ols ZcLS4NsNu1PDhbwRpSW6BAi3wneTy4ZPIussMA723rlzn7cNG8H5HMw5TO/2zgUrAOf5F800ed/ wTFGQJ952eOXy1Q1KXxkQlHEkojmGEWOcMnFrGVyoAdex5vCaAPYaHltJLARPVdtrxkhV2k8uQL lKD56uMwm79mYRFbvHMgqITZ/raQCGSNMTPWb7ZwK X-Received: by 2002:a05:620a:459f:b0:92e:5b63:224e with SMTP id af79cd13be357-92e8b5049abmr1749179385a.22.1783341950996; Mon, 06 Jul 2026 05:45:50 -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 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-Spam-Info: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfX8PX+v9ep8eTa /iu5ITaWNEIvfLRW4E21HYcKtqQXKoIx0h5Y5RVmTc5Nzq0mXgu+DQJd42W24bxgCIJTusb+7l0 VBIuVjby3/oJ6lyeWr7nnry1U8G+Sbo= X-Proofpoint-GUID: OkNPAiOILGis6UgkWlWoz7vKaAWZteCc X-Authority-Analysis: v=2.4 cv=C6zZDwP+ 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=YMgV9FUhrdKAYTUUvYB2:22 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=2sGp0kyKjRk1obZUzdUA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: OkNPAiOILGis6UgkWlWoz7vKaAWZteCc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfXwbA2rF6Njmbe mDGTILuXxAGj2ene35zIgCbHFs7sHgXKgjQlBtV6aE9wf0/0VsKriH2o+mx0izgqndumablfbC0 4ZmqJ7/E6B+QLMtCN1t4QtTvaRo1kgqK3yULCdjFX4aiubm3mOBbbKV0Wr3cLlO6zC2fvMSxbbf raT69yGmwKfKINcqB0rXgQ9YX9fNFyQ22AqXosykhQyczLn4u4SFddInzm/voVfM/hzT9Jmst+C b1/hgkALyvQIQH5/xzxks0pHCExKIc2lf/UTo+oMmSjBlKewSm3CdVf/f2Cp66tKSgvYMqK2Lar JqkyWYjMpRpkBB62ue97xkMgk1Z52fYd2QoKedc1owFG+SNtjDbOdf5eGDF9BM1LK+0qGvX+A7Q UYsCsWAf8xXiivTHFaMuk2Oac4ctWFoxxJfkmwUK5M2SoWdrSB2/iLd8e73rY8whUwKZxHD3NkL WfZu5dfxfptjdOqesOA== 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 phishscore=0 clxscore=1015 spamscore=0 adultscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060129 X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" 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