[PATCH v3] of: find also nodes by mixture of alias and path
Sascha Hauer
s.hauer at pengutronix.de
Fri Jan 10 04:40:22 EST 2014
On Mon, Jan 06, 2014 at 01:45:43PM +0100, Jan Weitzel wrote:
> Let of_find_node_by_path_or_alias also find a node starting with an alias
> followed by a path like "i2c0/tps at 24"
>
> Signed-off-by: Jan Weitzel <j.weitzel at phytec.de>
Applied, thanks
Sascha
> ---
> v2: rename ret to node
> v3: use strchr
> drivers/of/base.c | 23 ++++++++++++++++++++++-
> 1 files changed, 22 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index ea2d879..6e5e7d6 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1378,11 +1378,32 @@ EXPORT_SYMBOL(of_find_node_by_path);
> struct device_node *of_find_node_by_path_or_alias(struct device_node *root,
> const char *str)
> {
> + struct device_node *node;
> + const char *slash;
> + char *alias;
> + size_t len = 0;
> +
> if (*str == '/')
> return of_find_node_by_path_from(root, str);
> - else
> +
> + slash = strchr(str, '/');
> +
> + if (!slash)
> return of_find_node_by_alias(root, str);
>
> + len = slash - str + 1;
> + alias = xmalloc(len);
> + strlcpy(alias, str, len);
> +
> + node = of_find_node_by_alias(root, alias);
> +
> + if (!node)
> + goto out;
> +
> + node = of_find_node_by_path_from(node, slash);
> +out:
> + free(alias);
> + return node;
> }
> EXPORT_SYMBOL(of_find_node_by_path_or_alias);
>
> --
> 1.7.0.4
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list