diff options
author | Jonas Bonn <jonas@southpole.se> | 2010-07-23 13:19:35 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2010-07-24 11:58:22 -0400 |
commit | c608558407aa64d2b98d58bfc116e95c0afb357e (patch) | |
tree | 1dba985555b1fff5ce587c6368f47383ba00ebd4 /arch | |
parent | de48e369e8ea3a773cb2f959b76fcfad9966f4a0 (diff) |
of: make of_find_device_by_node generic
There's no need for this function to be architecture specific and all four
architectures defining it had the same definition. The function has been
moved to drivers/of/platform.c.
Signed-off-by: Jonas Bonn <jonas@southpole.se>
[grant.likely@secretlab.ca: moved to drivers/of/platform.c, simplified code, and added kerneldoc comment]
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/microblaze/kernel/of_platform.c | 16 | ||||
-rw-r--r-- | arch/powerpc/kernel/of_platform.c | 16 | ||||
-rw-r--r-- | arch/sparc/kernel/of_device_common.c | 20 |
3 files changed, 0 insertions, 52 deletions
diff --git a/arch/microblaze/kernel/of_platform.c b/arch/microblaze/kernel/of_platform.c index c664b275a5fa..6cffadbe2fcd 100644 --- a/arch/microblaze/kernel/of_platform.c +++ b/arch/microblaze/kernel/of_platform.c | |||
@@ -47,19 +47,3 @@ const struct of_device_id of_default_bus_ids[] = { | |||
47 | { .type = "simple", }, | 47 | { .type = "simple", }, |
48 | {}, | 48 | {}, |
49 | }; | 49 | }; |
50 | |||
51 | static int of_dev_node_match(struct device *dev, void *data) | ||
52 | { | ||
53 | return to_platform_device(dev)->dev.of_node == data; | ||
54 | } | ||
55 | |||
56 | struct platform_device *of_find_device_by_node(struct device_node *np) | ||
57 | { | ||
58 | struct device *dev; | ||
59 | |||
60 | dev = bus_find_device(&platform_bus_type, NULL, np, of_dev_node_match); | ||
61 | if (dev) | ||
62 | return to_platform_device(dev); | ||
63 | return NULL; | ||
64 | } | ||
65 | EXPORT_SYMBOL(of_find_device_by_node); | ||
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index 84439d1b7cb3..760a7af7fdb5 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c | |||
@@ -52,22 +52,6 @@ const struct of_device_id of_default_bus_ids[] = { | |||
52 | {}, | 52 | {}, |
53 | }; | 53 | }; |
54 | 54 | ||
55 | static int of_dev_node_match(struct device *dev, void *data) | ||
56 | { | ||
57 | return to_platform_device(dev)->dev.of_node == data; | ||
58 | } | ||
59 | |||
60 | struct platform_device *of_find_device_by_node(struct device_node *np) | ||
61 | { | ||
62 | struct device *dev; | ||
63 | |||
64 | dev = bus_find_device(&platform_bus_type, NULL, np, of_dev_node_match); | ||
65 | if (dev) | ||
66 | return to_platform_device(dev); | ||
67 | return NULL; | ||
68 | } | ||
69 | EXPORT_SYMBOL(of_find_device_by_node); | ||
70 | |||
71 | #ifdef CONFIG_PPC_OF_PLATFORM_PCI | 55 | #ifdef CONFIG_PPC_OF_PLATFORM_PCI |
72 | 56 | ||
73 | /* The probing of PCI controllers from of_platform is currently | 57 | /* The probing of PCI controllers from of_platform is currently |
diff --git a/arch/sparc/kernel/of_device_common.c b/arch/sparc/kernel/of_device_common.c index e80729bba028..49ddff56cb04 100644 --- a/arch/sparc/kernel/of_device_common.c +++ b/arch/sparc/kernel/of_device_common.c | |||
@@ -11,26 +11,6 @@ | |||
11 | 11 | ||
12 | #include "of_device_common.h" | 12 | #include "of_device_common.h" |
13 | 13 | ||
14 | static int node_match(struct device *dev, void *data) | ||
15 | { | ||
16 | struct platform_device *op = to_platform_device(dev); | ||
17 | struct device_node *dp = data; | ||
18 | |||
19 | return (op->dev.of_node == dp); | ||
20 | } | ||
21 | |||
22 | struct platform_device *of_find_device_by_node(struct device_node *dp) | ||
23 | { | ||
24 | struct device *dev = bus_find_device(&platform_bus_type, NULL, | ||
25 | dp, node_match); | ||
26 | |||
27 | if (dev) | ||
28 | return to_platform_device(dev); | ||
29 | |||
30 | return NULL; | ||
31 | } | ||
32 | EXPORT_SYMBOL(of_find_device_by_node); | ||
33 | |||
34 | unsigned int irq_of_parse_and_map(struct device_node *node, int index) | 14 | unsigned int irq_of_parse_and_map(struct device_node *node, int index) |
35 | { | 15 | { |
36 | struct platform_device *op = of_find_device_by_node(node); | 16 | struct platform_device *op = of_find_device_by_node(node); |