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 463E7C77B61 for ; Wed, 29 Mar 2023 16:08:16 +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=36iKU1Z70zoS5RV2T9182/HKukvOt2BdW2krCYD0uw0=; b=aZyvFpQRrxgXTW T8/pC2Bm5IqO4G/W38VaEsTOgWLx4Gr+qgRSXHKCUQyrE1tWqk9DSeSlYa/jCp5xSsYU4k3558zZZ icTzRLyZwkNrMeyGH+b1+6L2V0EJYnOIIoyoa80boW6DULIVw9qN8XDt/oFlEB6cw0niiCbUrSzVr z18uQA9o14JGTW8unVNl8OiKbMfcW3VOsutB6fjUWJXxCj5AiQ/kJrzXjDHEYGdAaNM7F5f2emv4b ZsIOek7xpEnJdVQYbDp5qGxRKMp8IGc9eSoWmQ9SuWTgexHKxl+ucNkefk4WTTU54I1evywWmIVm6 8GCxrDk820ozlXTJVjBg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1phYKY-0010t7-1x; Wed, 29 Mar 2023 16:07:22 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1phYKV-0010kY-0H for linux-arm-kernel@lists.infradead.org; Wed, 29 Mar 2023 16:07:20 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id z83so19988808ybb.2 for ; Wed, 29 Mar 2023 09:06:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680106012; 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=J0buJ+bz6nRSi4h6CRlltq38ZsNDLaTAQVOLOp+rT9g=; b=JyWGqb0rnM6Sjmr5Bl4106EruRjN4ZyrC4ulTrvxI++yyUReLhocOWspATt4I43CCk BRYT6OObG7ovMUKxW98BbgWnujPD4HfiHuN6giihag+OTBsYwORn9VrRIB7o9MQAjt2A i3IMvrTFcT/64rg8vRALYA4XWBdb7R25rE3CnvF1uLUH/gUfcp1uW/sCbxsLJ+3En4Bp D3hG4Blfoc7lc8Bm/FBx1EIGRt0MRsO5hs+28NHIokS4xB3CPof3Vp0SigHAuFKMc76R FtvK0HPYfC6os9KTos1h1DXwsb3IAq5R7ZqqLou9tdrySrKEMhWnTh/G7kK/tpeU/xyK Dfjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680106012; 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=J0buJ+bz6nRSi4h6CRlltq38ZsNDLaTAQVOLOp+rT9g=; b=aKshgnf1QJKHcHPmaK8apBUi8b+3yFpNeSoSy829rJYL1AT6Vo6XOfpUCahe9fymkt EZACVQ7c0U6addreDU/WYVAFUrU3mtnzhNS2mrtZioteB0ZuntZkbBVxS6xCVpN6IAIp qNoea+Ahk1ficeNLbZbgKWpglnIJnfcL1PrDXsSrh+TDcDVNVzUSpUVfkhx5WMEDGV1a LbGDT2SE8HUWO6+rrMRIQ1qhfLydWgMXbaNRIga46dDtqAU5ZBcf4uapRHIdgmIiFr07 qBcJbmDiefo6d/Iu/2kGdTh0UTwTGaZR19fyyD6F9sKJaJd/QQmY/wMNVRxyoGrWDjTF mwnA== X-Gm-Message-State: AAQBX9f/s9nSN1mE+nUo1iPbt3nsTQRGba3lXTc9djun8NUVELRayqGc redUFhAdgYLB6/X8TbzJgPA= X-Google-Smtp-Source: AKy350aB7U4fI6GzSH5WLeQTGvxrYIlnqRkcNF926bpP1fyvjSIzR/JytVOq1d4Psvk6hnLUvCJ6sA== X-Received: by 2002:a05:6902:18d3:b0:b76:1f06:5e53 with SMTP id ck19-20020a05690218d300b00b761f065e53mr23550206ybb.42.1680106012248; Wed, 29 Mar 2023 09:06:52 -0700 (PDT) Received: from ?IPV6:2600:1700:2442:6db0:d913:852b:d7c6:7253? ([2600:1700:2442:6db0:d913:852b:d7c6:7253]) by smtp.gmail.com with ESMTPSA id 198-20020a250bcf000000b00b7767ca746asm3538614ybl.7.2023.03.29.09.06.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Mar 2023 09:06:51 -0700 (PDT) Message-ID: Date: Wed, 29 Mar 2023 11:06:50 -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-20230329_090719_126344_8249D24F X-CRM114-Status: GOOD ( 27.92 ) 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. Can you elaborate on why this is? What the relevant code paths are? > > 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. > > Fixes: 4a032827daa89350 ("of: property: Simplify of_link_to_phandle()") >From a quick scan of the fixed commit, I don't see how that commit caused the problem. Can you give a quick clue? (The clue does not need to be added to the commit message, but please at least put it below the "---" if there are additional versions of this patch.) > 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