Skip to content

Commit

Permalink
[SPARC/64]: Consolidate of_register_driver
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Rothwell authored and David S. Miller committed Oct 18, 2007
1 parent 7b96dc0 commit 5c45708
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 48 deletions.
20 changes: 0 additions & 20 deletions arch/sparc/kernel/of_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -585,24 +585,6 @@ static int __init of_debug(char *str)

__setup("of_debug=", of_debug);

int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
{
/* initialize common driver fields */
if (!drv->driver.name)
drv->driver.name = drv->name;
if (!drv->driver.owner)
drv->driver.owner = drv->owner;
drv->driver.bus = bus;

/* register with core */
return driver_register(&drv->driver);
}

void of_unregister_driver(struct of_platform_driver *drv)
{
driver_unregister(&drv->driver);
}

struct of_device* of_platform_device_create(struct device_node *np,
const char *bus_id,
struct device *parent,
Expand All @@ -628,6 +610,4 @@ struct of_device* of_platform_device_create(struct device_node *np,
return dev;
}

EXPORT_SYMBOL(of_register_driver);
EXPORT_SYMBOL(of_unregister_driver);
EXPORT_SYMBOL(of_platform_device_create);
20 changes: 0 additions & 20 deletions arch/sparc64/kernel/of_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -869,26 +869,6 @@ static int __init of_debug(char *str)

__setup("of_debug=", of_debug);

int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
{
/* initialize common driver fields */
if (!drv->driver.name)
drv->driver.name = drv->name;
if (!drv->driver.owner)
drv->driver.owner = drv->owner;
drv->driver.bus = bus;

/* register with core */
return driver_register(&drv->driver);
}
EXPORT_SYMBOL(of_register_driver);

void of_unregister_driver(struct of_platform_driver *drv)
{
driver_unregister(&drv->driver);
}
EXPORT_SYMBOL(of_unregister_driver);

struct of_device* of_platform_device_create(struct device_node *np,
const char *bus_id,
struct device *parent,
Expand Down
21 changes: 21 additions & 0 deletions drivers/of/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*
*/
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/of_device.h>
#include <linux/of_platform.h>
Expand Down Expand Up @@ -94,3 +95,23 @@ int of_bus_type_init(struct bus_type *bus, const char *name)
bus->resume = of_platform_device_resume;
return bus_register(bus);
}

int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
{
/* initialize common driver fields */
if (!drv->driver.name)
drv->driver.name = drv->name;
if (!drv->driver.owner)
drv->driver.owner = drv->owner;
drv->driver.bus = bus;

/* register with core */
return driver_register(&drv->driver);
}
EXPORT_SYMBOL(of_register_driver);

void of_unregister_driver(struct of_platform_driver *drv)
{
driver_unregister(&drv->driver);
}
EXPORT_SYMBOL(of_unregister_driver);
5 changes: 1 addition & 4 deletions include/asm-sparc/of_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,9 @@

extern struct bus_type ebus_bus_type;
extern struct bus_type sbus_bus_type;
extern struct bus_type of_platform_bus_type;

#define of_bus_type of_platform_bus_type /* for compatibility */

extern int of_register_driver(struct of_platform_driver *drv,
struct bus_type *bus);
extern void of_unregister_driver(struct of_platform_driver *drv);
extern struct of_device *of_platform_device_create(struct device_node *np,
const char *bus_id,
struct device *parent,
Expand Down
5 changes: 1 addition & 4 deletions include/asm-sparc64/of_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,9 @@
extern struct bus_type isa_bus_type;
extern struct bus_type ebus_bus_type;
extern struct bus_type sbus_bus_type;
extern struct bus_type of_platform_bus_type;

#define of_bus_type of_platform_bus_type /* for compatibility */

extern int of_register_driver(struct of_platform_driver *drv,
struct bus_type *bus);
extern void of_unregister_driver(struct of_platform_driver *drv);
extern struct of_device *of_platform_device_create(struct device_node *np,
const char *bus_id,
struct device *parent,
Expand Down
4 changes: 4 additions & 0 deletions include/linux/of_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ struct of_platform_driver
#define to_of_platform_driver(drv) \
container_of(drv,struct of_platform_driver, driver)

extern int of_register_driver(struct of_platform_driver *drv,
struct bus_type *bus);
extern void of_unregister_driver(struct of_platform_driver *drv);

#include <asm/of_platform.h>

extern struct of_device *of_find_device_by_node(struct device_node *np);
Expand Down

0 comments on commit 5c45708

Please sign in to comment.