* [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices @ 2016-10-20 11:02 Alexander Sverdlin [not found] ` <b317f693-98b5-ba1e-1184-83735a68db9b-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2016-10-20 11:02 UTC (permalink / raw) To: devicetree-u79uwXL29TY76Z2rM5mHXA Cc: Rob Herring, Frank Rowand, Pantelis Antoniou, Grant Likely of_platform_notify() requires parents to have OF_POPULATED_BUS to be set (which is correct way to verify healthy platform bus), but uses of_platform_device_create() to create devices, which never sets the above flag. Therefore it's not possible to add platform buses via overlays. Use of_platform_bus_create(), which is used in non-overlay case to populate both buses and devices. Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org> Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> --- drivers/of/platform.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index af98343..d2d6e74 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -521,6 +521,7 @@ static int of_platform_notify(struct notifier_block *nb, struct of_reconfig_data *rd = arg; struct platform_device *pdev_parent, *pdev; bool children_left; + int ret; switch (of_reconfig_get_state_change(action, rd)) { case OF_RECONFIG_CHANGE_ADD: @@ -534,15 +535,15 @@ static int of_platform_notify(struct notifier_block *nb, /* 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, - pdev_parent ? &pdev_parent->dev : NULL); + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, + NULL, pdev_parent ? + &pdev_parent->dev : NULL, true); of_dev_put(pdev_parent); - if (pdev == NULL) { + if (ret) { pr_err("%s: failed to create for '%s'\n", __func__, rd->dn->full_name); - /* of_platform_device_create tosses the error code */ - return notifier_from_errno(-EINVAL); + return notifier_from_errno(ret); } break; -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 16+ messages in thread
[parent not found: <b317f693-98b5-ba1e-1184-83735a68db9b-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <b317f693-98b5-ba1e-1184-83735a68db9b-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2016-10-27 13:00 ` Rob Herring [not found] ` <CAL_JsqJZ__mUwRT14BmNQKaa_mAPsJm0iWP8sb6Oqs+_-Gu5hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Rob Herring @ 2016-10-27 13:00 UTC (permalink / raw) To: Alexander Sverdlin Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frank Rowand, Pantelis Antoniou, Grant Likely On Thu, Oct 20, 2016 at 6:02 AM, Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> wrote: > of_platform_notify() requires parents to have OF_POPULATED_BUS to be set > (which is correct way to verify healthy platform bus), but uses > of_platform_device_create() to create devices, which never sets the above > flag. Therefore it's not possible to add platform buses via overlays. Can you create a unit test case that has the problem. > Use of_platform_bus_create(), which is used in non-overlay case to populate > both buses and devices. > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> > Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Cc: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org> > Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > > --- > drivers/of/platform.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index af98343..d2d6e74 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -521,6 +521,7 @@ static int of_platform_notify(struct notifier_block *nb, > struct of_reconfig_data *rd = arg; > struct platform_device *pdev_parent, *pdev; > bool children_left; > + int ret; > > switch (of_reconfig_get_state_change(action, rd)) { > case OF_RECONFIG_CHANGE_ADD: > @@ -534,15 +535,15 @@ static int of_platform_notify(struct notifier_block *nb, > > /* 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, > - pdev_parent ? &pdev_parent->dev : NULL); > + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, > + NULL, pdev_parent ? > + &pdev_parent->dev : NULL, true); I think this should be of_platform_default_populate() instead. > of_dev_put(pdev_parent); > > - if (pdev == NULL) { > + if (ret) { > pr_err("%s: failed to create for '%s'\n", > __func__, rd->dn->full_name); > - /* of_platform_device_create tosses the error code */ > - return notifier_from_errno(-EINVAL); > + return notifier_from_errno(ret); > } > break; > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <CAL_JsqJZ__mUwRT14BmNQKaa_mAPsJm0iWP8sb6Oqs+_-Gu5hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <CAL_JsqJZ__mUwRT14BmNQKaa_mAPsJm0iWP8sb6Oqs+_-Gu5hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-01-20 17:38 ` Alexander Sverdlin [not found] ` <3da6854d-8361-1724-2a8a-36f28449733e-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-20 20:57 ` [PATCH 0/2] Ensure that platform buses from overlays are functional Alexander Sverdlin 2017-09-19 15:13 ` [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin 2 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-20 17:38 UTC (permalink / raw) To: Rob Herring Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frank Rowand, Pantelis Antoniou, Grant Likely Hello Rob, On 27/10/16 15:00, Rob Herring wrote: >> @@ -534,15 +535,15 @@ static int of_platform_notify(struct notifier_block *nb, >> >> /* 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, >> - pdev_parent ? &pdev_parent->dev : NULL); >> + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, >> + NULL, pdev_parent ? >> + &pdev_parent->dev : NULL, true); > I think this should be of_platform_default_populate() instead. I've just tested: it cannot be. It calls of_platform_populate(), which ignores "status" property. This not only brakes half of the unit tests, but also would change the existing behavior of overlays (they will completely ignore "status" too). -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <3da6854d-8361-1724-2a8a-36f28449733e-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <3da6854d-8361-1724-2a8a-36f28449733e-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-01-21 19:51 ` Rob Herring [not found] ` <CAL_JsqKb8KUgit-q_cOON8VgZBsrXEQd2EcC0iF=ou_271Vg_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Rob Herring @ 2017-01-21 19:51 UTC (permalink / raw) To: Alexander Sverdlin Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frank Rowand, Pantelis Antoniou, Grant Likely On Fri, Jan 20, 2017 at 11:38 AM, Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> wrote: > Hello Rob, > > On 27/10/16 15:00, Rob Herring wrote: >>> @@ -534,15 +535,15 @@ static int of_platform_notify(struct notifier_block *nb, >>> >>> /* 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, >>> - pdev_parent ? &pdev_parent->dev : NULL); >>> + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, >>> + NULL, pdev_parent ? >>> + &pdev_parent->dev : NULL, true); >> I think this should be of_platform_default_populate() instead. > > I've just tested: it cannot be. It calls of_platform_populate(), which ignores "status" property. > This not only brakes half of the unit tests, but also would change the existing behavior of > overlays (they will completely ignore "status" too). That's a bug. I assume that's only at the 1st level or things would be completely broken. Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <CAL_JsqKb8KUgit-q_cOON8VgZBsrXEQd2EcC0iF=ou_271Vg_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* [PATCH] of/platform: Ignore disabled devices in of_platform_populate() [not found] ` <CAL_JsqKb8KUgit-q_cOON8VgZBsrXEQd2EcC0iF=ou_271Vg_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-01-23 12:21 ` Alexander Sverdlin [not found] ` <20170123122151.21908-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-23 12:52 ` [PATCH v2] " Alexander Sverdlin 2017-01-23 15:07 ` [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin 2 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-23 12:21 UTC (permalink / raw) Cc: Alexander Sverdlin, Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA Check the status property and give up early enough. Otherwise OF_POPULATED_BUS might be set for disabled bus which will prevent it from being populated later (if enabled). Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org --- drivers/of/platform.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 35de1fc59fa6..5ad8c13f754a 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -473,9 +473,13 @@ int of_platform_populate(struct device_node *root, struct device_node *child; int rc = 0; - root = root ? of_node_get(root) : of_find_node_by_path("/"); + if (!root) + root = of_find_node_by_path("/"); if (!root) return -EINVAL; + if (!of_device_is_available(root)) + return 0; + of_node_get(root); pr_debug("%s()\n", __func__); pr_debug(" starting at: %s\n", root->full_name); -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 16+ messages in thread
[parent not found: <20170123122151.21908-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] of/platform: Ignore disabled devices in of_platform_populate() [not found] ` <20170123122151.21908-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-01-23 12:24 ` Alexander Sverdlin 0 siblings, 0 replies; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-23 12:24 UTC (permalink / raw) Cc: Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA Hello all, On 23/01/17 13:21, Alexander Sverdlin wrote: > Check the status property and give up early enough. Otherwise > OF_POPULATED_BUS might be set for disabled bus which will prevent > it from being populated later (if enabled). > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> > Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > --- > drivers/of/platform.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index 35de1fc59fa6..5ad8c13f754a 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -473,9 +473,13 @@ int of_platform_populate(struct device_node *root, > struct device_node *child; > int rc = 0; > > - root = root ? of_node_get(root) : of_find_node_by_path("/"); > + if (!root) > + root = of_find_node_by_path("/"); > if (!root) > return -EINVAL; > + if (!of_device_is_available(root)) > + return 0; > + of_node_get(root); Auch, I see unbalanced reference counting here, please ignore this patch... > pr_debug("%s()\n", __func__); > pr_debug(" starting at: %s\n", root->full_name); -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v2] of/platform: Ignore disabled devices in of_platform_populate() [not found] ` <CAL_JsqKb8KUgit-q_cOON8VgZBsrXEQd2EcC0iF=ou_271Vg_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-23 12:21 ` [PATCH] of/platform: Ignore disabled devices in of_platform_populate() Alexander Sverdlin @ 2017-01-23 12:52 ` Alexander Sverdlin [not found] ` <20170123125204.22233-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-23 15:07 ` [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin 2 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-23 12:52 UTC (permalink / raw) Cc: Alexander Sverdlin, Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA Check the status property and give up early enough. Otherwise OF_POPULATED_BUS might be set for disabled bus which will prevent it from being populated later (if enabled). Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org --- drivers/of/platform.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 35de1fc59fa6..060621d94f1a 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -476,6 +476,10 @@ int of_platform_populate(struct device_node *root, root = root ? of_node_get(root) : of_find_node_by_path("/"); if (!root) return -EINVAL; + if (!of_device_is_available(root)) { + of_node_put(root); + return 0; + } pr_debug("%s()\n", __func__); pr_debug(" starting at: %s\n", root->full_name); -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 16+ messages in thread
[parent not found: <20170123125204.22233-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] of/platform: Ignore disabled devices in of_platform_populate() [not found] ` <20170123125204.22233-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-01-23 14:33 ` Alexander Sverdlin [not found] ` <711e6067-ab41-8217-b947-2b4c356aaaba-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-09-19 15:23 ` Alexander Sverdlin 1 sibling, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-23 14:33 UTC (permalink / raw) Cc: Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA Hello all, On 23/01/17 13:52, Alexander Sverdlin wrote: > Check the status property and give up early enough. Otherwise > OF_POPULATED_BUS might be set for disabled bus which will prevent > it from being populated later (if enabled). > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> > Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > --- > drivers/of/platform.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index 35de1fc59fa6..060621d94f1a 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -476,6 +476,10 @@ int of_platform_populate(struct device_node *root, > root = root ? of_node_get(root) : of_find_node_by_path("/"); > if (!root) > return -EINVAL; > + if (!of_device_is_available(root)) { > + of_node_put(root); > + return 0; > + } > > pr_debug("%s()\n", __func__); > pr_debug(" starting at: %s\n", root->full_name); no, this one also doesn't allow to switch to of_platform_default_populate(), please ignore the patch. -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <711e6067-ab41-8217-b947-2b4c356aaaba-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] of/platform: Ignore disabled devices in of_platform_populate() [not found] ` <711e6067-ab41-8217-b947-2b4c356aaaba-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-01-23 15:09 ` Alexander Sverdlin 0 siblings, 0 replies; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-23 15:09 UTC (permalink / raw) Cc: Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA On 23/01/17 15:33, Alexander Sverdlin wrote: >> Check the status property and give up early enough. Otherwise >> OF_POPULATED_BUS might be set for disabled bus which will prevent >> it from being populated later (if enabled). >> >> Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> >> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> --- >> drivers/of/platform.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/of/platform.c b/drivers/of/platform.c >> index 35de1fc59fa6..060621d94f1a 100644 >> --- a/drivers/of/platform.c >> +++ b/drivers/of/platform.c >> @@ -476,6 +476,10 @@ int of_platform_populate(struct device_node *root, >> root = root ? of_node_get(root) : of_find_node_by_path("/"); >> if (!root) >> return -EINVAL; >> + if (!of_device_is_available(root)) { >> + of_node_put(root); >> + return 0; >> + } >> >> pr_debug("%s()\n", __func__); >> pr_debug(" starting at: %s\n", root->full_name); > no, this one also doesn't allow to switch to of_platform_default_populate(), > please ignore the patch. Well, the patch seems to fix a real problem because OF_POPULATED_BUS would be set for disabled buses, which will prevent their enabling later. Even if there is no in-tree call site stumbles upon this issue. -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] of/platform: Ignore disabled devices in of_platform_populate() [not found] ` <20170123125204.22233-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-23 14:33 ` Alexander Sverdlin @ 2017-09-19 15:23 ` Alexander Sverdlin 1 sibling, 0 replies; 16+ messages in thread From: Alexander Sverdlin @ 2017-09-19 15:23 UTC (permalink / raw) Cc: Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA PING? On 23/01/17 13:52, Alexander Sverdlin wrote: > Check the status property and give up early enough. Otherwise > OF_POPULATED_BUS might be set for disabled bus which will prevent > it from being populated later (if enabled). > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> > Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > --- > drivers/of/platform.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index 35de1fc59fa6..060621d94f1a 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -476,6 +476,10 @@ int of_platform_populate(struct device_node *root, > root = root ? of_node_get(root) : of_find_node_by_path("/"); > if (!root) > return -EINVAL; > + if (!of_device_is_available(root)) { > + of_node_put(root); > + return 0; > + } > > pr_debug("%s()\n", __func__); > pr_debug(" starting at: %s\n", root->full_name); -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <CAL_JsqKb8KUgit-q_cOON8VgZBsrXEQd2EcC0iF=ou_271Vg_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-23 12:21 ` [PATCH] of/platform: Ignore disabled devices in of_platform_populate() Alexander Sverdlin 2017-01-23 12:52 ` [PATCH v2] " Alexander Sverdlin @ 2017-01-23 15:07 ` Alexander Sverdlin 2 siblings, 0 replies; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-23 15:07 UTC (permalink / raw) To: Rob Herring Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frank Rowand, Pantelis Antoniou, Grant Likely Hi Rob, On 21/01/17 20:51, Rob Herring wrote: > On Fri, Jan 20, 2017 at 11:38 AM, Alexander Sverdlin > <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> wrote: >> Hello Rob, >> >> On 27/10/16 15:00, Rob Herring wrote: >>>> @@ -534,15 +535,15 @@ static int of_platform_notify(struct notifier_block *nb, >>>> >>>> /* 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, >>>> - pdev_parent ? &pdev_parent->dev : NULL); >>>> + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, >>>> + NULL, pdev_parent ? >>>> + &pdev_parent->dev : NULL, true); >>> I think this should be of_platform_default_populate() instead. >> I've just tested: it cannot be. It calls of_platform_populate(), which ignores "status" property. >> This not only brakes half of the unit tests, but also would change the existing behavior of >> overlays (they will completely ignore "status" too). > That's a bug. I assume that's only at the 1st level or things would be > completely broken. well, after two unsuccessful attempts to use of_platform_default_populate() in of_platform_notify() I see what the actual problem is: of_platform_*populate() do not populate the root node itself, therefore they are not suitable for of_platform_notify(). -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/2] Ensure that platform buses from overlays are functional [not found] ` <CAL_JsqJZ__mUwRT14BmNQKaa_mAPsJm0iWP8sb6Oqs+_-Gu5hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-20 17:38 ` Alexander Sverdlin @ 2017-01-20 20:57 ` Alexander Sverdlin [not found] ` <20170120205745.11851-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-09-19 15:13 ` [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin 2 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-20 20:57 UTC (permalink / raw) Cc: Alexander Sverdlin, Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Pantelis Antoniou This series addresses an issue, which prevents one to add child devices to a platform bus from an overlay if such a bus was in turn also created from an overlay. The root cause is missing OF_POPULATED_BUS flag for such buses and the difference, in the way, how static and dynamic platform devices are populated. Second patch adds a couple of test cases which demonstrate the problem. This series relies on the correct functioning of of_unittest_apply_overlay() (previously sent "of/unittest: Swap arguments of of_unittest_apply_overlay()"). Alexander Sverdlin (2): of/platform: dynamic: Use of_platform_bus_create() to create devices of/unittest: Test platform bus added from overlay drivers/of/platform.c | 11 ++++---- drivers/of/unittest-data/tests-overlay.dtsi | 41 +++++++++++++++++++++++++++++ drivers/of/unittest.c | 31 ++++++++++++++++++++++ 3 files changed, 78 insertions(+), 5 deletions(-) Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org> -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20170120205745.11851-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* [PATCH 1/2] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <20170120205745.11851-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-01-20 21:02 ` Alexander Sverdlin [not found] ` <20170120210234.11924-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-20 21:02 UTC (permalink / raw) Cc: Alexander Sverdlin, Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Pantelis Antoniou of_platform_notify() requires parents to have OF_POPULATED_BUS to be set (which is correct way to verify healthy platform bus), but uses of_platform_device_create() to create devices, which never sets the above flag. Therefore it's not possible to add platform buses via overlays. Use of_platform_bus_create(), which is used in non-overlay case to populate both buses and devices. Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org> --- drivers/of/platform.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index b8064bc2b6eb..35de1fc59fa6 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -578,6 +578,7 @@ static int of_platform_notify(struct notifier_block *nb, struct of_reconfig_data *rd = arg; struct platform_device *pdev_parent, *pdev; bool children_left; + int ret; switch (of_reconfig_get_state_change(action, rd)) { case OF_RECONFIG_CHANGE_ADD: @@ -591,15 +592,15 @@ static int of_platform_notify(struct notifier_block *nb, /* 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, - pdev_parent ? &pdev_parent->dev : NULL); + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, + NULL, pdev_parent ? + &pdev_parent->dev : NULL, true); of_dev_put(pdev_parent); - if (pdev == NULL) { + if (ret) { pr_err("%s: failed to create for '%s'\n", __func__, rd->dn->full_name); - /* of_platform_device_create tosses the error code */ - return notifier_from_errno(-EINVAL); + return notifier_from_errno(ret); } break; -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 16+ messages in thread
[parent not found: <20170120210234.11924-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* [PATCH 2/2] of/unittest: Test platform bus added from overlay [not found] ` <20170120210234.11924-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-01-20 21:02 ` Alexander Sverdlin 0 siblings, 0 replies; 16+ messages in thread From: Alexander Sverdlin @ 2017-01-20 21:02 UTC (permalink / raw) Cc: Alexander Sverdlin, Rob Herring, Frank Rowand, devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Pantelis Antoniou Check that it's possible to: - add children to platform buses originating from overlays - use overlay to enable a platform bus originating from overlay Explicitly avoid unittest_probe(), because this test case checks the correct creation of the devices only. Driver probing might be delayed (say, modules) and correct device creation must not depend on it. Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org> --- drivers/of/unittest-data/tests-overlay.dtsi | 83 +++++++++++++++++++++++++++++ drivers/of/unittest.c | 60 +++++++++++++++++++++ 2 files changed, 143 insertions(+) diff --git a/drivers/of/unittest-data/tests-overlay.dtsi b/drivers/of/unittest-data/tests-overlay.dtsi index 02ba56c20fe1..6925a992f9e2 100644 --- a/drivers/of/unittest-data/tests-overlay.dtsi +++ b/drivers/of/unittest-data/tests-overlay.dtsi @@ -325,5 +325,88 @@ }; }; + /* test that platform buses from overlays are functional */ + overlay16 { + fragment@0 { + target-path = "/testcase-data/overlay-node/test-bus"; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + + test-unittest16 { + /* + * testing just device creation, + * no unittest_probe() should + * be called + */ + compatible = "simple-bus"; + reg = <16>; + }; + }; + }; + }; + + overlay17 { + fragment@0 { + target-path = "/testcase-data/overlay-node/test-bus"; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + + test-unittest16 { + #address-cells = <1>; + #size-cells = <0>; + + test-unittest161 { + compatible = "unittest"; + reg = <1>; + }; + }; + }; + }; + }; + + overlay18 { + fragment@0 { + target-path = "/testcase-data/overlay-node/test-bus"; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + + test-unittest18 { + #address-cells = <1>; + #size-cells = <0>; + /* + * testing just device creation, + * no unittest_probe() should + * be called + */ + compatible = "simple-bus"; + reg = <18>; + status = "disabled"; + + test-unittest181 { + compatible = "unittest"; + reg = <1>; + }; + }; + }; + }; + }; + + overlay19 { + fragment@0 { + target-path = "/testcase-data/overlay-node/test-bus"; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + + test-unittest18 { + status = "okay"; + }; + }; + }; + }; + }; }; diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index 66bfa8d674ce..2c533709bb0e 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c @@ -1854,6 +1854,63 @@ static inline void of_unittest_overlay_i2c_15(void) { } #endif +/* test that platform buses populated by overlays are functional */ +static void of_unittest_overlay_16(void) +{ + int ret; + char *child_path; + + /* add an empty bus */ + ret = of_unittest_apply_overlay_check(16, 16, 0, 1, PDEV_OVERLAY); + if (unittest(ret == 0, + "overlay test %d failed; overlay application\n", 16)) + return; + + /* add a device to the bus */ + ret = of_unittest_apply_overlay(17, 16, PDEV_OVERLAY); + if (unittest(ret == 0, + "overlay test %d failed; overlay application\n", 16)) + return; + + child_path = kasprintf(GFP_KERNEL, "%s/test-unittest161", + unittest_path(16, PDEV_OVERLAY)); + if (unittest(child_path, "overlay test %d failed; kasprintf\n", 16)) + return; + + ret = of_path_device_type_exists(child_path, PDEV_OVERLAY); + kfree(child_path); + if (unittest(ret, "overlay test %d failed; no child device\n", 16)) + return; +} + +static void of_unittest_overlay_18(void) +{ + int ret; + char *child_path; + + /* add a disabled bus */ + ret = of_unittest_apply_overlay_check(18, 18, 0, 0, PDEV_OVERLAY); + if (unittest(ret == 0, + "overlay test %d failed; overlay application\n", 18)) + return; + + /* enable the bus */ + ret = of_unittest_apply_overlay_check(19, 18, 0, 1, PDEV_OVERLAY); + if (unittest(ret == 0, + "overlay test %d failed; overlay application\n", 18)) + return; + + child_path = kasprintf(GFP_KERNEL, "%s/test-unittest181", + unittest_path(18, PDEV_OVERLAY)); + if (unittest(child_path, "overlay test %d failed; kasprintf\n", 18)) + return; + + ret = of_path_device_type_exists(child_path, PDEV_OVERLAY); + kfree(child_path); + if (unittest(ret, "overlay test %d failed; no child device\n", 18)) + return; +} + static void __init of_unittest_overlay(void) { struct device_node *bus_np = NULL; @@ -1916,6 +1973,9 @@ static void __init of_unittest_overlay(void) of_unittest_overlay_i2c_cleanup(); #endif + of_unittest_overlay_16(); + of_unittest_overlay_18(); + of_unittest_destroy_tracked_overlays(); out: -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <CAL_JsqJZ__mUwRT14BmNQKaa_mAPsJm0iWP8sb6Oqs+_-Gu5hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-20 17:38 ` Alexander Sverdlin 2017-01-20 20:57 ` [PATCH 0/2] Ensure that platform buses from overlays are functional Alexander Sverdlin @ 2017-09-19 15:13 ` Alexander Sverdlin [not found] ` <43407912-3ecd-97c7-a90a-a9cd07a4b3ae-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2 siblings, 1 reply; 16+ messages in thread From: Alexander Sverdlin @ 2017-09-19 15:13 UTC (permalink / raw) To: Rob Herring Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frank Rowand, Pantelis Antoniou, Grant Likely Hello Rob, On 27/10/16 15:00, Rob Herring wrote: > On Thu, Oct 20, 2016 at 6:02 AM, Alexander Sverdlin > <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> wrote: >> of_platform_notify() requires parents to have OF_POPULATED_BUS to be set >> (which is correct way to verify healthy platform bus), but uses >> of_platform_device_create() to create devices, which never sets the above >> flag. Therefore it's not possible to add platform buses via overlays. > Can you create a unit test case that has the problem. PING The tests for the highlighted problem were presented here: http://www.spinics.net/lists/devicetree/msg160016.html >> Use of_platform_bus_create(), which is used in non-overlay case to populate >> both buses and devices. >> Signed-off-by: Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> >> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> Cc: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >> Cc: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org> >> Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> >> >> --- >> drivers/of/platform.c | 11 ++++++----- >> 1 file changed, 6 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/of/platform.c b/drivers/of/platform.c >> index af98343..d2d6e74 100644 >> --- a/drivers/of/platform.c >> +++ b/drivers/of/platform.c >> @@ -521,6 +521,7 @@ static int of_platform_notify(struct notifier_block *nb, >> struct of_reconfig_data *rd = arg; >> struct platform_device *pdev_parent, *pdev; >> bool children_left; >> + int ret; >> >> switch (of_reconfig_get_state_change(action, rd)) { >> case OF_RECONFIG_CHANGE_ADD: >> @@ -534,15 +535,15 @@ static int of_platform_notify(struct notifier_block *nb, >> >> /* 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, >> - pdev_parent ? &pdev_parent->dev : NULL); >> + ret = of_platform_bus_create(rd->dn, of_default_bus_match_table, >> + NULL, pdev_parent ? >> + &pdev_parent->dev : NULL, true); > I think this should be of_platform_default_populate() instead. > >> of_dev_put(pdev_parent); >> >> - if (pdev == NULL) { >> + if (ret) { >> pr_err("%s: failed to create for '%s'\n", >> __func__, rd->dn->full_name); >> - /* of_platform_device_create tosses the error code */ >> - return notifier_from_errno(-EINVAL); >> + return notifier_from_errno(ret); >> } >> break; -- Best regards, Alexander Sverdlin. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <43407912-3ecd-97c7-a90a-a9cd07a4b3ae-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices [not found] ` <43407912-3ecd-97c7-a90a-a9cd07a4b3ae-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> @ 2017-09-19 16:27 ` Rob Herring 0 siblings, 0 replies; 16+ messages in thread From: Rob Herring @ 2017-09-19 16:27 UTC (permalink / raw) To: Alexander Sverdlin Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frank Rowand, Pantelis Antoniou On Tue, Sep 19, 2017 at 10:13 AM, Alexander Sverdlin <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> wrote: > Hello Rob, > > On 27/10/16 15:00, Rob Herring wrote: >> On Thu, Oct 20, 2016 at 6:02 AM, Alexander Sverdlin >> <alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> wrote: >>> of_platform_notify() requires parents to have OF_POPULATED_BUS to be set >>> (which is correct way to verify healthy platform bus), but uses >>> of_platform_device_create() to create devices, which never sets the above >>> flag. Therefore it's not possible to add platform buses via overlays. >> Can you create a unit test case that has the problem. > > PING > The tests for the highlighted problem were presented here: > http://www.spinics.net/lists/devicetree/msg160016.html Can you please rebase and resend these. Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2017-09-19 16:27 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-10-20 11:02 [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin [not found] ` <b317f693-98b5-ba1e-1184-83735a68db9b-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2016-10-27 13:00 ` Rob Herring [not found] ` <CAL_JsqJZ__mUwRT14BmNQKaa_mAPsJm0iWP8sb6Oqs+_-Gu5hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-20 17:38 ` Alexander Sverdlin [not found] ` <3da6854d-8361-1724-2a8a-36f28449733e-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-21 19:51 ` Rob Herring [not found] ` <CAL_JsqKb8KUgit-q_cOON8VgZBsrXEQd2EcC0iF=ou_271Vg_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-23 12:21 ` [PATCH] of/platform: Ignore disabled devices in of_platform_populate() Alexander Sverdlin [not found] ` <20170123122151.21908-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-23 12:24 ` Alexander Sverdlin 2017-01-23 12:52 ` [PATCH v2] " Alexander Sverdlin [not found] ` <20170123125204.22233-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-23 14:33 ` Alexander Sverdlin [not found] ` <711e6067-ab41-8217-b947-2b4c356aaaba-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-23 15:09 ` Alexander Sverdlin 2017-09-19 15:23 ` Alexander Sverdlin 2017-01-23 15:07 ` [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin 2017-01-20 20:57 ` [PATCH 0/2] Ensure that platform buses from overlays are functional Alexander Sverdlin [not found] ` <20170120205745.11851-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-20 21:02 ` [PATCH 1/2] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin [not found] ` <20170120210234.11924-1-alexander.sverdlin-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-01-20 21:02 ` [PATCH 2/2] of/unittest: Test platform bus added from overlay Alexander Sverdlin 2017-09-19 15:13 ` [PATCH] of/platform: dynamic: Use of_platform_bus_create() to create devices Alexander Sverdlin [not found] ` <43407912-3ecd-97c7-a90a-a9cd07a4b3ae-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> 2017-09-19 16:27 ` Rob Herring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).