RE: [PATCH] ARM: imx: use of_root to simplify code

From: Peng Fan
Date: Thu Jan 09 2020 - 03:20:43 EST


+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@xxxxxxx>
> >
> > 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@xxxxxxx>
> > ---
> >
> > 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
> >