diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-07 20:37:54 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-07 20:37:54 +0300 |
commit | dd6ec12f3bf83ca3c4e712a9f35960aec779f6f9 (patch) | |
tree | 8b6f9f187eb0ae621a64798270c420143c698484 /drivers/of/resolver.c | |
parent | 21c19bc7ee256094aba74af8d91a824da4bc36af (diff) | |
parent | a4485b545e2fad4d65732cb7c60089bf4246de5c (diff) | |
download | linux-dd6ec12f3bf83ca3c4e712a9f35960aec779f6f9.tar.xz |
Merge tag 'devicetree-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull DeviceTree updates from Rob Herring:
- vsprintf format specifier %pOF for device_node's. This will enable us
to stop storing the full node names. Conversion of users will happen
next cycle.
- Update documentation to point to DT specification instead of ePAPR.
- Split out graph and property functions to a separate file.
- New of-graph functions for ALSA
- Add vendor prefixes for RISC-V, Linksys, iWave Systems, Roofull,
Itead, and BananaPi.
- Improve dtx_diff utility filename printing.
* tag 'devicetree-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (32 commits)
of: document /sys/firmware/fdt
dt-bindings: Add RISC-V vendor prefix
vsprintf: Add %p extension "%pOF" for device tree
of: find_node_by_full_name rewrite to compare each level
of: use kbasename instead of open coding
dt-bindings: thermal: add file extension to brcm,ns-thermal
of: update ePAPR references to point to Devicetree Specification
scripts/dtc: dtx_diff - Show real file names in diff header
of: detect invalid phandle in overlay
of: be consistent in form of file mode
of: make __of_attach_node() static
of: address.c header comment typo
of: fdt.c header comment typo
of: make of_fdt_is_compatible() static
dt-bindings: display-timing.txt convert non-ascii characters to ascii
Documentation: remove overlay-notes reference to non-existent file
dt-bindings: usb: exynos-usb: Add missing required VDD properties
dt-bindings: Add vendor prefix for Linksys
MAINTAINERS: add device tree ABI documentation file
of: Add vendor prefix for iWave Systems Technologies Pvt. Ltd
...
Diffstat (limited to 'drivers/of/resolver.c')
-rw-r--r-- | drivers/of/resolver.c | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/drivers/of/resolver.c b/drivers/of/resolver.c index 771f4844c781..99309cb7d372 100644 --- a/drivers/of/resolver.c +++ b/drivers/of/resolver.c @@ -20,35 +20,11 @@ #include <linux/errno.h> #include <linux/slab.h> +#include "of_private.h" + /* illegal phandle value (set when unresolved) */ #define OF_PHANDLE_ILLEGAL 0xdeadbeef -/** - * Find a node with the give full name by recursively following any of - * the child node links. - */ -static struct device_node *find_node_by_full_name(struct device_node *node, - const char *full_name) -{ - struct device_node *child, *found; - - if (!node) - return NULL; - - if (!of_node_cmp(node->full_name, full_name)) - return of_node_get(node); - - for_each_child_of_node(node, child) { - found = find_node_by_full_name(child, full_name); - if (found != NULL) { - of_node_put(child); - return found; - } - } - - return NULL; -} - static phandle live_tree_max_phandle(void) { struct device_node *node; @@ -138,7 +114,7 @@ static int update_usages_of_a_phandle_reference(struct device_node *overlay, if (err) goto err_fail; - refnode = find_node_by_full_name(overlay, node_path); + refnode = __of_find_node_by_full_path(of_node_get(overlay), node_path); if (!refnode) continue; @@ -165,8 +141,8 @@ err_fail: static int node_name_cmp(const struct device_node *dn1, const struct device_node *dn2) { - const char *n1 = strrchr(dn1->full_name, '/') ? : "/"; - const char *n2 = strrchr(dn2->full_name, '/') ? : "/"; + const char *n1 = kbasename(dn1->full_name); + const char *n2 = kbasename(dn2->full_name); return of_node_cmp(n1, n2); } |