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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 18A53C74A5B for ; Mon, 27 Mar 2023 02:53:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VSR5ogvMSHvDq5ApCuG604ItTGBmzC3TlW+Nkr6SsQ4=; b=WkAjDqOKr8b/Mo QdA8f4Vq+/EqnWzzscLhelUmtIhET3bgrPPn947uMDGJv52dhVa4BRKQMwED1yxyIwZ1vcSAvLMuI Pqdlni47ka+wA0H1s1bQEqln5bLBoxQMXfXE29dU7EeEM74T8zAjhrJsFwZHJNILmP3ecDgtnnWEp x0a7VvR0Kc2KAStP35wTXfJLeQYz/aOJQNOAHQ9HQKc7y5wJ12lNcla7edYk65IUXAMKLjNE0d7zT qc/QFRkmIFK5h/5pqoxqG9t1z6V7jcGfR6kP50iRZ6KI7MnhJpmLNXg1dpyBtvt5gfq4C1o+Zndkm Ec6+1kZ2AnJihS162QBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgcyq-009aKk-0P; Mon, 27 Mar 2023 02:53:08 +0000 Received: from mail-oo1-xc33.google.com ([2607:f8b0:4864:20::c33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgcym-009aJP-29 for linux-arm-kernel@lists.infradead.org; Mon, 27 Mar 2023 02:53:06 +0000 Received: by mail-oo1-xc33.google.com with SMTP id m6-20020a4ae846000000b0053b9059edd5so1121749oom.3 for ; Sun, 26 Mar 2023 19:52:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679885578; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=9Bwxc+9Wm9XzKT3wRxyc/yPN0nekHNduBtYwd30w4es=; b=Ri2bV1FoPdgTw8eh91inBnZJ+Qu05D62pZaR49BYSn4lGQZdHyxBDBpsYq82C2/KPM 8WYVkWpAifvRsKZGBQDFJIpNP/YWF1t9Dmlg2M7iNoBkM5F2xmhPunNECZSJ5jAitliU R3QUSopKVqTCMQSg2DOiuk0C3/B8O6J7GTU0TnJGJQ9uTbLhWQ/zrPmNm9uxWFvJj5FO Nh0TrOq/p67efHEAy3gwv5QTY6zGSG3keGsvcDBtmfCNbWyrgSws18VwQI8qdhZZwfNc KvCcdnaTgdI5y5OgeX3osQfoSV+OYV2iO4iCUsmQDgSlqMAcTRIAmMgOuwlztr38X9fc OV6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679885578; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9Bwxc+9Wm9XzKT3wRxyc/yPN0nekHNduBtYwd30w4es=; b=fd5c75NotBiEH3iG33cwhE5DRjlIgiBwQm5oduVqnIAHRHyNLD8FnZ9Ab8KPWcYT2p fRtS4vSiTNopx1fv3KBz8HDDsTrm+YuNu407mhoS5bQ2la50RDmzRS5mKHtFWHOQaNDZ FO/XgEOu3Gxr084ToBwTy1G9WnbUd58xWT0JJHs3nMxd6j9UVwjTIfN1GnLPHal913n0 s7h4xn1846reu/qixqYXU0XD7jlaY/xPKFVhOOCg99mCunyv7wNSrEIq2B/o77fk4eOp ouoNycs2SbqbvVHctO3aRorBcMaVA0JGWo5Dvi91mC9UnRaJ+tMty9bOIRCc1QJ0Uh56 Jwdg== X-Gm-Message-State: AO0yUKXNLhum2WkV0bN/7o+zXrIRvfxQ/guzi+xuFfRjNXayfqESyExn uDfEuHteVaPhNkBFKFbokNo= X-Google-Smtp-Source: AK7set/o369pQb1Fc6jFOL0nEK9V5MY2Ai6irQxBSn4gfxgxy+ywh0kdL4g7fxXrtddj+x6XtQYojQ== X-Received: by 2002:a4a:410f:0:b0:53b:4b21:2345 with SMTP id x15-20020a4a410f000000b0053b4b212345mr4762320ooa.2.1679885578198; Sun, 26 Mar 2023 19:52:58 -0700 (PDT) Received: from ?IPV6:2600:1700:2442:6db0:988b:7dda:764e:c744? ([2600:1700:2442:6db0:988b:7dda:764e:c744]) by smtp.gmail.com with ESMTPSA id o15-20020a05680803cf00b003875e29808esm4217121oie.0.2023.03.26.19.52.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 26 Mar 2023 19:52:57 -0700 (PDT) Message-ID: <25c6664b-6e9f-17d5-957c-054d99787a1a@gmail.com> Date: Sun, 26 Mar 2023 21:52:56 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v2] treewide: Fix instantiation of devices in DT overlays Content-Language: en-US To: Geert Uytterhoeven , Greg Kroah-Hartman , Saravana Kannan Cc: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Wolfram Sang , Rob Herring , Mark Brown , linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org References: <240155f20aae47e9f7461e2b7416120ba6238886.1679650087.git.geert+renesas@glider.be> From: Frank Rowand In-Reply-To: <240155f20aae47e9f7461e2b7416120ba6238886.1679650087.git.geert+renesas@glider.be> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230326_195304_704623_2EBB5FD5 X-CRM114-Status: GOOD ( 24.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 3/24/23 04:30, Geert Uytterhoeven wrote: > When loading a DT overlay that creates a device, the device is not > instantiated, unless the DT overlay is unloaded and reloaded again. > > Saravana explains: > Basically for all overlays (I hope the function is only used for > overlays) we assume all nodes are NOT devices until they actually > get added as a device. > > Based on a patch by Saravana Kannan, which covered only platform and spi > devices. I have given this a quick look but want to look more deeply at overall context. (That Geert found imx-weim, i2c, and spi is a good sign.) At the top of my list for Monday 3/27. -Frank > > Fixes: 4a032827daa89350 ("of: property: Simplify of_link_to_phandle()") > Link: https://lore.kernel.org/r/CAGETcx_+rhHvaC_HJXGrr5_WAd2+k5f=rWYnkCZ6z5bGX-wj4w@mail.gmail.com > Signed-off-by: Geert Uytterhoeven > Acked-by: Mark Brown > --- > v2: > - Add Acked-by, > - Drop RFC. > --- > drivers/bus/imx-weim.c | 1 + > drivers/i2c/i2c-core-of.c | 1 + > drivers/of/dynamic.c | 1 + > drivers/of/platform.c | 1 + > drivers/spi/spi.c | 1 + > 5 files changed, 5 insertions(+) > > diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c > index 36d42484142aede2..898e23a4231400fa 100644 > --- a/drivers/bus/imx-weim.c > +++ b/drivers/bus/imx-weim.c > @@ -329,6 +329,7 @@ static int of_weim_notify(struct notifier_block *nb, unsigned long action, > "Failed to setup timing for '%pOF'\n", rd->dn); > > if (!of_node_check_flag(rd->dn, OF_POPULATED)) { > + rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE; > if (!of_platform_device_create(rd->dn, NULL, &pdev->dev)) { > dev_err(&pdev->dev, > "Failed to create child device '%pOF'\n", > diff --git a/drivers/i2c/i2c-core-of.c b/drivers/i2c/i2c-core-of.c > index aa93467784c29c89..303f9003562eed3d 100644 > --- a/drivers/i2c/i2c-core-of.c > +++ b/drivers/i2c/i2c-core-of.c > @@ -178,6 +178,7 @@ static int of_i2c_notify(struct notifier_block *nb, unsigned long action, > return NOTIFY_OK; > } > > + rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE; > client = of_i2c_register_device(adap, rd->dn); > if (IS_ERR(client)) { > dev_err(&adap->dev, "failed to create client for '%pOF'\n", > diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c > index 07d93753b12f5f4d..e311d406b1705306 100644 > --- a/drivers/of/dynamic.c > +++ b/drivers/of/dynamic.c > @@ -226,6 +226,7 @@ static void __of_attach_node(struct device_node *np) > np->sibling = np->parent->child; > np->parent->child = np; > of_node_clear_flag(np, OF_DETACHED); > + np->fwnode.flags |= FWNODE_FLAG_NOT_DEVICE; > } > > /** > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index b2bd2e783445dd78..17c92cbfb62ee3ef 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -737,6 +737,7 @@ static int of_platform_notify(struct notifier_block *nb, > if (of_node_check_flag(rd->dn, OF_POPULATED)) > return NOTIFY_OK; > > + rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE; > /* pdev_parent may be NULL when no bus platform device */ > pdev_parent = of_find_device_by_node(rd->dn->parent); > pdev = of_platform_device_create(rd->dn, NULL, > diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c > index 8e8af148b1dc371e..66ac67580d2a473b 100644 > --- a/drivers/spi/spi.c > +++ b/drivers/spi/spi.c > @@ -4527,6 +4527,7 @@ static int of_spi_notify(struct notifier_block *nb, unsigned long action, > return NOTIFY_OK; > } > > + rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE; > spi = of_register_spi_device(ctlr, rd->dn); > put_device(&ctlr->dev); > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel