diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2008-01-08 14:20:40 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-01-16 22:53:22 -0500 |
commit | 283029d16a882539ab0027afd94ac52858d050b2 (patch) | |
tree | 78ad81fba51de1fbafd30706f162dc9315690e8b /drivers/of/device.c | |
parent | 91bbbe22dbd6d156b7059af13adb26a978a45661 (diff) |
[POWERPC] Add of_find_matching_node() helper function
Similar to of_find_compatible_node(), of_find_matching_node() and
for_each_matching_node() allow you to iterate over the device tree
looking for specific nodes, except that they take of_device_id
tables instead of strings.
This also moves of_match_node() from driver/of/device.c to
driver/of/base.c to colocate it with the of_find_matching_node which
depends on it.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers/of/device.c')
-rw-r--r-- | drivers/of/device.c | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/drivers/of/device.c b/drivers/of/device.c index 6245f060fb77..29681c4b700b 100644 --- a/drivers/of/device.c +++ b/drivers/of/device.c | |||
@@ -10,35 +10,6 @@ | |||
10 | #include <asm/errno.h> | 10 | #include <asm/errno.h> |
11 | 11 | ||
12 | /** | 12 | /** |
13 | * of_match_node - Tell if an device_node has a matching of_match structure | ||
14 | * @ids: array of of device match structures to search in | ||
15 | * @node: the of device structure to match against | ||
16 | * | ||
17 | * Low level utility function used by device matching. | ||
18 | */ | ||
19 | const struct of_device_id *of_match_node(const struct of_device_id *matches, | ||
20 | const struct device_node *node) | ||
21 | { | ||
22 | while (matches->name[0] || matches->type[0] || matches->compatible[0]) { | ||
23 | int match = 1; | ||
24 | if (matches->name[0]) | ||
25 | match &= node->name | ||
26 | && !strcmp(matches->name, node->name); | ||
27 | if (matches->type[0]) | ||
28 | match &= node->type | ||
29 | && !strcmp(matches->type, node->type); | ||
30 | if (matches->compatible[0]) | ||
31 | match &= of_device_is_compatible(node, | ||
32 | matches->compatible); | ||
33 | if (match) | ||
34 | return matches; | ||
35 | matches++; | ||
36 | } | ||
37 | return NULL; | ||
38 | } | ||
39 | EXPORT_SYMBOL(of_match_node); | ||
40 | |||
41 | /** | ||
42 | * of_match_device - Tell if an of_device structure has a matching | 13 | * of_match_device - Tell if an of_device structure has a matching |
43 | * of_match structure | 14 | * of_match structure |
44 | * @ids: array of of device match structures to search in | 15 | * @ids: array of of device match structures to search in |