summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRouven Czerwinski <r.czerwinski@pengutronix.de>2020-03-06 09:38:11 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2020-03-09 08:38:38 +0100
commit7732d7669b5c54a5c17a6bab6706f6624da0f78e (patch)
treeac2479bb9e565eadb9dc1d2ecbce13996ea0c486 /drivers
parentf41e5160c8618455064a4ff4227105010cd56aaa (diff)
downloadbarebox-7732d7669b5c54a5c17a6bab6706f6624da0f78e.tar.gz
of: overlay: rework error message for symbols
Missing symbols for overlay or root tree are valid if the overlay only adds paths to the device tree. The code handles this correctly, however it still isues a WARNING for the missing symbols. Demote the warning to info and move into the of_overlay_apply_symbols() function. Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/of/overlay.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index c777856..a35eddf 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -105,7 +105,7 @@ static char *of_overlay_fix_path(struct device_node *root,
return basprintf("%s%s", target->full_name, path_tail);
}
-static int of_overlay_apply_symbols(struct device_node *root,
+static void of_overlay_apply_symbols(struct device_node *root,
struct device_node *overlay)
{
const char *old_path;
@@ -115,12 +115,12 @@ static int of_overlay_apply_symbols(struct device_node *root,
struct device_node *overlay_symbols;
root_symbols = of_get_child_by_name(root, "__symbols__");
- if (!root_symbols)
- return -EINVAL;
-
overlay_symbols = of_get_child_by_name(overlay, "__symbols__");
- if (!overlay_symbols)
- return -EINVAL;
+
+ if (!overlay_symbols || !root_symbols) {
+ pr_info("overlay/root doesn't have a __symbols__ node\n");
+ return;
+ }
list_for_each_entry(prop, &overlay_symbols->properties, list) {
if (of_prop_cmp(prop->name, "name") == 0)
@@ -133,8 +133,6 @@ static int of_overlay_apply_symbols(struct device_node *root,
prop->name, new_path);
of_property_write_string(root_symbols, prop->name, new_path);
}
-
- return 0;
}
static int of_overlay_apply_fragment(struct device_node *root,
@@ -171,9 +169,7 @@ int of_overlay_apply_tree(struct device_node *root,
return -EINVAL;
/* Copy symbols from resolved overlay to base device tree */
- err = of_overlay_apply_symbols(root, resolved);
- if (err)
- pr_warn("failed to copy symbols from overlay");
+ of_overlay_apply_symbols(root, resolved);
/* Copy nodes and properties from resolved overlay to root */
for_each_child_of_node(resolved, fragment) {