[PATCH v4 1/4] dt: check root nodes for match on of_platform_populate
Grant Likely
grant.likely at secretlab.ca
Sat Jun 11 07:13:14 EST 2011
On Fri, Jun 10, 2011 at 03:48:40PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring at calxeda.com>
>
> of_platform_populate will create platform devices for the top-level nodes
> if they have a compatible string, but regardless of a match or not.
>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Signed-off-by: Rob Herring <rob.herring at calxeda.com>
> ---
> drivers/of/platform.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 9b785be..dc56a77 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -318,6 +318,8 @@ int of_platform_populate(struct device_node *root,
> return -EINVAL;
>
> for_each_child_of_node(root, child) {
> + if (!of_match_node(matches, child))
> + continue;
This doesn't look right. The point of of_platform_populate() is to
register platform_devices for all the child nodes, regardless of
whether or not they are in the match table.
of_platform_bus_create() does the correct behaviour to check for
whether or not to register grandchildren.
> rc = of_platform_bus_create(child, matches, parent, true);
> if (rc)
> break;
> --
> 1.7.4.1
>
More information about the devicetree-discuss
mailing list