diff options
| author | Stephen Rothwell <sfr@canb.auug.org.au> | 2007-10-18 00:17:42 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2007-10-18 00:17:42 -0400 |
| commit | 5c45708352a040f19caceb683c78bc86aad466f6 (patch) | |
| tree | 6541789a623c189c1e91ffd91bd972cad938d130 | |
| parent | 7b96dc023a1b487bce59256fde14b8bb28b45aea (diff) | |
[SPARC/64]: Consolidate of_register_driver
Also of_unregister_driver. These will be shortly also used by the
PowerPC code.
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | arch/sparc/kernel/of_device.c | 20 | ||||
| -rw-r--r-- | arch/sparc64/kernel/of_device.c | 20 | ||||
| -rw-r--r-- | drivers/of/platform.c | 21 | ||||
| -rw-r--r-- | include/asm-sparc/of_platform.h | 5 | ||||
| -rw-r--r-- | include/asm-sparc64/of_platform.h | 5 | ||||
| -rw-r--r-- | include/linux/of_platform.h | 4 |
6 files changed, 27 insertions, 48 deletions
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c index fb2caef79cec..3ea000d15e3a 100644 --- a/arch/sparc/kernel/of_device.c +++ b/arch/sparc/kernel/of_device.c | |||
| @@ -585,24 +585,6 @@ static int __init of_debug(char *str) | |||
| 585 | 585 | ||
| 586 | __setup("of_debug=", of_debug); | 586 | __setup("of_debug=", of_debug); |
| 587 | 587 | ||
| 588 | int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) | ||
| 589 | { | ||
| 590 | /* initialize common driver fields */ | ||
| 591 | if (!drv->driver.name) | ||
| 592 | drv->driver.name = drv->name; | ||
| 593 | if (!drv->driver.owner) | ||
| 594 | drv->driver.owner = drv->owner; | ||
| 595 | drv->driver.bus = bus; | ||
| 596 | |||
| 597 | /* register with core */ | ||
| 598 | return driver_register(&drv->driver); | ||
| 599 | } | ||
| 600 | |||
| 601 | void of_unregister_driver(struct of_platform_driver *drv) | ||
| 602 | { | ||
| 603 | driver_unregister(&drv->driver); | ||
| 604 | } | ||
| 605 | |||
| 606 | struct of_device* of_platform_device_create(struct device_node *np, | 588 | struct of_device* of_platform_device_create(struct device_node *np, |
| 607 | const char *bus_id, | 589 | const char *bus_id, |
| 608 | struct device *parent, | 590 | struct device *parent, |
| @@ -628,6 +610,4 @@ struct of_device* of_platform_device_create(struct device_node *np, | |||
| 628 | return dev; | 610 | return dev; |
| 629 | } | 611 | } |
| 630 | 612 | ||
| 631 | EXPORT_SYMBOL(of_register_driver); | ||
| 632 | EXPORT_SYMBOL(of_unregister_driver); | ||
| 633 | EXPORT_SYMBOL(of_platform_device_create); | 613 | EXPORT_SYMBOL(of_platform_device_create); |
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 42d779866fba..fc5c0cc793b8 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
| @@ -869,26 +869,6 @@ static int __init of_debug(char *str) | |||
| 869 | 869 | ||
| 870 | __setup("of_debug=", of_debug); | 870 | __setup("of_debug=", of_debug); |
| 871 | 871 | ||
| 872 | int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) | ||
| 873 | { | ||
| 874 | /* initialize common driver fields */ | ||
| 875 | if (!drv->driver.name) | ||
| 876 | drv->driver.name = drv->name; | ||
| 877 | if (!drv->driver.owner) | ||
| 878 | drv->driver.owner = drv->owner; | ||
| 879 | drv->driver.bus = bus; | ||
| 880 | |||
| 881 | /* register with core */ | ||
| 882 | return driver_register(&drv->driver); | ||
| 883 | } | ||
| 884 | EXPORT_SYMBOL(of_register_driver); | ||
| 885 | |||
| 886 | void of_unregister_driver(struct of_platform_driver *drv) | ||
| 887 | { | ||
| 888 | driver_unregister(&drv->driver); | ||
| 889 | } | ||
| 890 | EXPORT_SYMBOL(of_unregister_driver); | ||
| 891 | |||
| 892 | struct of_device* of_platform_device_create(struct device_node *np, | 872 | struct of_device* of_platform_device_create(struct device_node *np, |
| 893 | const char *bus_id, | 873 | const char *bus_id, |
| 894 | struct device *parent, | 874 | struct device *parent, |
diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 864f09fd9f86..b47bb2d7476a 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | * | 12 | * |
| 13 | */ | 13 | */ |
| 14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
| 15 | #include <linux/module.h> | ||
| 15 | #include <linux/device.h> | 16 | #include <linux/device.h> |
| 16 | #include <linux/of_device.h> | 17 | #include <linux/of_device.h> |
| 17 | #include <linux/of_platform.h> | 18 | #include <linux/of_platform.h> |
| @@ -94,3 +95,23 @@ int of_bus_type_init(struct bus_type *bus, const char *name) | |||
| 94 | bus->resume = of_platform_device_resume; | 95 | bus->resume = of_platform_device_resume; |
| 95 | return bus_register(bus); | 96 | return bus_register(bus); |
| 96 | } | 97 | } |
| 98 | |||
| 99 | int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) | ||
| 100 | { | ||
| 101 | /* initialize common driver fields */ | ||
| 102 | if (!drv->driver.name) | ||
| 103 | drv->driver.name = drv->name; | ||
| 104 | if (!drv->driver.owner) | ||
| 105 | drv->driver.owner = drv->owner; | ||
| 106 | drv->driver.bus = bus; | ||
| 107 | |||
| 108 | /* register with core */ | ||
| 109 | return driver_register(&drv->driver); | ||
| 110 | } | ||
| 111 | EXPORT_SYMBOL(of_register_driver); | ||
| 112 | |||
| 113 | void of_unregister_driver(struct of_platform_driver *drv) | ||
| 114 | { | ||
| 115 | driver_unregister(&drv->driver); | ||
| 116 | } | ||
| 117 | EXPORT_SYMBOL(of_unregister_driver); | ||
diff --git a/include/asm-sparc/of_platform.h b/include/asm-sparc/of_platform.h index 64a230064ef2..d638737ff13c 100644 --- a/include/asm-sparc/of_platform.h +++ b/include/asm-sparc/of_platform.h | |||
| @@ -18,12 +18,9 @@ | |||
| 18 | 18 | ||
| 19 | extern struct bus_type ebus_bus_type; | 19 | extern struct bus_type ebus_bus_type; |
| 20 | extern struct bus_type sbus_bus_type; | 20 | extern struct bus_type sbus_bus_type; |
| 21 | extern struct bus_type of_platform_bus_type; | 21 | |
| 22 | #define of_bus_type of_platform_bus_type /* for compatibility */ | 22 | #define of_bus_type of_platform_bus_type /* for compatibility */ |
| 23 | 23 | ||
| 24 | extern int of_register_driver(struct of_platform_driver *drv, | ||
| 25 | struct bus_type *bus); | ||
| 26 | extern void of_unregister_driver(struct of_platform_driver *drv); | ||
| 27 | extern struct of_device *of_platform_device_create(struct device_node *np, | 24 | extern struct of_device *of_platform_device_create(struct device_node *np, |
| 28 | const char *bus_id, | 25 | const char *bus_id, |
| 29 | struct device *parent, | 26 | struct device *parent, |
diff --git a/include/asm-sparc64/of_platform.h b/include/asm-sparc64/of_platform.h index f7c1f17c7d52..f15cfa723916 100644 --- a/include/asm-sparc64/of_platform.h +++ b/include/asm-sparc64/of_platform.h | |||
| @@ -19,12 +19,9 @@ | |||
| 19 | extern struct bus_type isa_bus_type; | 19 | extern struct bus_type isa_bus_type; |
| 20 | extern struct bus_type ebus_bus_type; | 20 | extern struct bus_type ebus_bus_type; |
| 21 | extern struct bus_type sbus_bus_type; | 21 | extern struct bus_type sbus_bus_type; |
| 22 | extern struct bus_type of_platform_bus_type; | 22 | |
| 23 | #define of_bus_type of_platform_bus_type /* for compatibility */ | 23 | #define of_bus_type of_platform_bus_type /* for compatibility */ |
| 24 | 24 | ||
| 25 | extern int of_register_driver(struct of_platform_driver *drv, | ||
| 26 | struct bus_type *bus); | ||
| 27 | extern void of_unregister_driver(struct of_platform_driver *drv); | ||
| 28 | extern struct of_device *of_platform_device_create(struct device_node *np, | 25 | extern struct of_device *of_platform_device_create(struct device_node *np, |
| 29 | const char *bus_id, | 26 | const char *bus_id, |
| 30 | struct device *parent, | 27 | struct device *parent, |
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index 448f70b30a0c..a8efcfeea732 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
| @@ -48,6 +48,10 @@ struct of_platform_driver | |||
| 48 | #define to_of_platform_driver(drv) \ | 48 | #define to_of_platform_driver(drv) \ |
| 49 | container_of(drv,struct of_platform_driver, driver) | 49 | container_of(drv,struct of_platform_driver, driver) |
| 50 | 50 | ||
| 51 | extern int of_register_driver(struct of_platform_driver *drv, | ||
| 52 | struct bus_type *bus); | ||
| 53 | extern void of_unregister_driver(struct of_platform_driver *drv); | ||
| 54 | |||
| 51 | #include <asm/of_platform.h> | 55 | #include <asm/of_platform.h> |
| 52 | 56 | ||
| 53 | extern struct of_device *of_find_device_by_node(struct device_node *np); | 57 | extern struct of_device *of_find_device_by_node(struct device_node *np); |
