From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Mon, 27 Nov 2023 07:38:09 +0100 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1r7VFw-00AdwK-2j for lore@lore.pengutronix.de; Mon, 27 Nov 2023 07:38:09 +0100 Received: from bombadil.infradead.org ([2607:7c80:54:3::133]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1r7VFw-0007TE-Q3 for lore@pengutronix.de; Mon, 27 Nov 2023 07:38:09 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3xtWwnygUHPRWgRs6pf/JxeWBPOdzSZ7uAyfabvhx1c=; b=pk3YUxj3DpHZdqaZSh1/SAri/g ncPpWsOQg61Tz/L/9n/so4oaEhkcZEP/GzFURbqm64pnqPPvEoWwB8AlWi9FKXACMNeVK6BJt3BDt qgMYlvrw0WOFqpO5aJ+mqM6aPLZJ9NOJKzYQZ4hck9FcMtKHJt58EJNLaKYs9i8WqUjyWpFCN9z2q efNOuwhpdnjipi4pGvTPjxvL+MQVXSM5yYF+886MNR2GHuLI3Oi6ll4wDc0cty5OZjZ1n7YDjHZt9 TfqGBApbtazUn1mV/6z7fovSK01CZUaHZdWtHuB4nzSgMk0SA3O+TGwPz41nA+JBKE2ap7iMkhOiJ 72zu/qjw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r7VEF-001YzR-0g; Mon, 27 Nov 2023 06:36:23 +0000 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r7VE8-001Ywr-31 for barebox@lists.infradead.org; Mon, 27 Nov 2023 06:36:18 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1r7VE4-00070b-I9; Mon, 27 Nov 2023 07:36:12 +0100 Received: from [2a0a:edc0:0:1101:1d::54] (helo=dude05.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r7VE4-00BsgZ-5S; Mon, 27 Nov 2023 07:36:12 +0100 Received: from localhost ([::1] helo=dude05.red.stw.pengutronix.de) by dude05.red.stw.pengutronix.de with esmtp (Exim 4.96) (envelope-from ) id 1r7VE4-009Fpr-0I; Mon, 27 Nov 2023 07:36:12 +0100 From: Ahmad Fatoum To: barebox@lists.infradead.org Cc: Ahmad Fatoum Date: Mon, 27 Nov 2023 07:35:54 +0100 Message-Id: <20231127063559.2205776-4-a.fatoum@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231127063559.2205776-1-a.fatoum@pengutronix.de> References: <20231127063559.2205776-1-a.fatoum@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231126_223617_113277_5D644D4F X-CRM114-Status: GOOD ( 14.04 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:3::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-4.9 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH 3/8] deep-probe: skip on-demand platform dev creation for nodes without compatible X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.whiteo.stw.pengutronix.de) of_device_create_on_demand won't create a new device if the device tree node already has a device associated. What it will do however, is to create devices for all parent nodes in the device tree if they don't already exist. This is unnecessary and clutters the device list with nodes that won't ever be matched as they lack a compatible anyway. For example a reference to scmi_reg11 in below snippet: &{scmi/protocol@17} { reg = <0x17>; regulators { #address-cells = <0x1>; #size-cells = <0x0>; scmi_reg11: regulator@0 { reg = <0x0>; regulator-name = "reg11"; }; }; }; will result in creation of a device for the regulators node that serves no purpose whatsoever: `-- firmware.of `-- firmware:scmi.of `-- scmi_dev0 `-- firmware:scmi:protocol@17:regulators.of Avoid this by creating devices on demand only if they have a compatible. Signed-off-by: Ahmad Fatoum --- drivers/of/platform.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 9e592d567cae..9ba4438812c1 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -442,9 +442,6 @@ static struct device *of_device_create_on_demand(struct device_node *np) if (!np->dev && parent->dev) device_rescan(parent->dev); - if (!np->dev) - pr_debug("Creating device for %pOF\n", np); - /* Create all parent devices needed for the requested device */ parent_dev = parent->dev ? : of_device_create_on_demand(parent); if (IS_ERR(parent_dev)) @@ -458,6 +455,11 @@ static struct device *of_device_create_on_demand(struct device_node *np) if (np->dev) return np->dev; + if (!of_property_present(np, "compatible")) + return NULL; + + pr_debug("Creating device for %pOF\n", np); + if (of_device_is_compatible(np, "arm,primecell")) dev = of_amba_device_create(np); else -- 2.39.2