Message ID | 1577696316-27635-1-git-send-email-peng.fan@nxp.com |
---|---|
State | New |
Headers | show |
Series | ARM: imx: use of_root to simplify code | expand |
On Mon, Dec 30, 2019 at 09:03:51AM +0000, Peng Fan wrote: > From: Peng Fan <peng.fan@nxp.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. Shawn > > Signed-off-by: Peng Fan <peng.fan@nxp.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 >
+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@nxp.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@nxp.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 > >
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;