[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