diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-02-25 10:04:59 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-03-06 11:41:28 +0100 |
commit | b26b7ef0f04d823e70f57684c8ee01277ade572a (patch) | |
tree | 135746b39e2ba4b6b68f7e4b8ad6829dd71a8968 /commands | |
parent | 8a185a4ff2283c670ffc8724c1b7bdbf8d458cbe (diff) | |
download | barebox-b26b7ef0f04d823e70f57684c8ee01277ade572a.tar.gz barebox-b26b7ef0f04d823e70f57684c8ee01277ade572a.tar.xz |
of: Add root node argument to of_find_node_by_path
This makes of_find_node_by_path usable with multiple trees.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands')
-rw-r--r-- | commands/of_node.c | 2 | ||||
-rw-r--r-- | commands/of_property.c | 10 | ||||
-rw-r--r-- | commands/oftree.c | 10 |
3 files changed, 18 insertions, 4 deletions
diff --git a/commands/of_node.c b/commands/of_node.c index bf9799caa8..2f6ecae33e 100644 --- a/commands/of_node.c +++ b/commands/of_node.c @@ -79,7 +79,7 @@ static int do_of_node(int argc, char *argv[]) if (!path) return COMMAND_ERROR_USAGE; - node = of_find_node_by_path(path); + node = of_find_node_by_path(root, path); if (!node) { printf("Cannot find nodepath %s\n", path); return -ENOENT; diff --git a/commands/of_property.c b/commands/of_property.c index 42b6f1123f..585522c3d4 100644 --- a/commands/of_property.c +++ b/commands/of_property.c @@ -176,7 +176,7 @@ static int do_of_property(int argc, char *argv[]) int set = 0; int ret; char *path = NULL, *propname = NULL; - struct device_node *node = NULL; + struct device_node *root, *node = NULL; struct property *pp = NULL; while ((opt = getopt(argc, argv, "ds")) > 0) { @@ -192,9 +192,15 @@ static int do_of_property(int argc, char *argv[]) } } + root = of_get_root_node(); + if (!root) { + printf("root node not set\n"); + return -ENOENT; + } + if (optind < argc) { path = argv[optind]; - node = of_find_node_by_path(path); + node = of_find_node_by_path(root, path); if (!node) { printf("Cannot find nodepath %s\n", path); return -ENOENT; diff --git a/commands/oftree.c b/commands/oftree.c index 68e3fb43c2..83ffe12f75 100644 --- a/commands/oftree.c +++ b/commands/oftree.c @@ -158,7 +158,15 @@ static int do_oftree(int argc, char *argv[]) if (fdt) { ret = fdt_print(fdt, node); } else { - struct device_node *n = of_find_node_by_path(node); + struct device_node *root, *n; + + root = of_get_root_node(); + if (!root) { + ret = -ENOENT; + goto out; + } + + n = of_find_node_by_path(root, node); if (!n) { ret = -ENOENT; |