[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <VI1PR04MB4496D19E97406E9AC71BAE9F88390@VI1PR04MB4496.eurprd04.prod.outlook.com>
Date: Thu, 9 Jan 2020 08:20:38 +0000
From: Peng Fan <peng.fan@....com>
To: Shawn Guo <shawnguo@...nel.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>
CC: "s.hauer@...gutronix.de" <s.hauer@...gutronix.de>,
"kernel@...gutronix.de" <kernel@...gutronix.de>,
"festevam@...il.com" <festevam@...il.com>,
dl-linux-imx <linux-imx@....com>,
Anson Huang <anson.huang@....com>,
Leonard Crestez <leonard.crestez@....com>,
"cniedermaier@...electronics.com" <cniedermaier@...electronics.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Alice Guo <alice.guo@....com>
Subject: RE: [PATCH] ARM: imx: use of_root to simplify code
+Rob
Hi Shawn,
> Subject: Re: [PATCH] ARM: imx: use of_root to simplify code
>
> On Mon, Dec 30, 2019 at 09:03:51AM +0000, Peng Fan wrote:
> > From: Peng Fan <peng.fan@....com>
> >
> > start_kernel
> > |->setup_arch
> > | |->unflatten_device_tree->of_root ready
> > |
> > |->do_initcalls
> > |->customize_machine
> > |->init_machine
> > |->imx_soc_device_init
> >
> > When imx_soc_device_init, of_root is ready, so we could directly use it.
>
> IMO, of_root is something for OF core code, not really for platform.
>From below link, I see powerpc and some driver use of_root directly.
https://elixir.bootlin.com/linux/v5.5-rc5/ident/of_root
of_root is exported as a symbol. Rob, could you please clarify whether
platform code could use of_root directly?
Thanks,
Peng.
>
> Shawn
>
> >
> > Signed-off-by: Peng Fan <peng.fan@....com>
> > ---
> >
> > V1:
> > Tested on i.MX7D-SDB
> >
> > arch/arm/mach-imx/cpu.c | 5 +----
> > 1 file changed, 1 insertion(+), 4 deletions(-)
> >
> > diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c index
> > 06f8d64b65af..77319b359070 100644
> > --- a/arch/arm/mach-imx/cpu.c
> > +++ b/arch/arm/mach-imx/cpu.c
> > @@ -88,7 +88,6 @@ struct device * __init imx_soc_device_init(void)
> > struct soc_device_attribute *soc_dev_attr;
> > const char *ocotp_compat = NULL;
> > struct soc_device *soc_dev;
> > - struct device_node *root;
> > struct regmap *ocotp = NULL;
> > const char *soc_id;
> > u64 soc_uid = 0;
> > @@ -101,9 +100,7 @@ struct device * __init imx_soc_device_init(void)
> >
> > soc_dev_attr->family = "Freescale i.MX";
> >
> > - root = of_find_node_by_path("/");
> > - ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
> > - of_node_put(root);
> > + ret = of_property_read_string(of_root, "model",
> > +&soc_dev_attr->machine);
> > if (ret)
> > goto free_soc;
> >
> > --
> > 2.16.4
> >
Powered by blists - more mailing lists