diff options
author | Ben Collins <ben.collins@ubuntu.com> | 2006-11-23 13:59:48 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-12-07 23:11:55 +0100 |
commit | ed30c26ee809b060f437fd9f1b3453e1d0375e32 (patch) | |
tree | 00daeacae861f1a544ed346d5ce4f26700f8f6ba /drivers/ieee1394 | |
parent | 9b7d9c096dd4e4baacc21b2588662bbb56f36c4e (diff) | |
download | linux-3.10-ed30c26ee809b060f437fd9f1b3453e1d0375e32.tar.gz linux-3.10-ed30c26ee809b060f437fd9f1b3453e1d0375e32.tar.bz2 linux-3.10-ed30c26ee809b060f437fd9f1b3453e1d0375e32.zip |
ieee1394: Consolidate driver registering
This patch consolidates some bookkeeping for driver registering. It
closely models what pci_register_driver() does. The main addition is
that the owner of the driver is set, so we get a proper symlink
for /sys/bus/ieee1394/driver/*/module.
Also moves setting of name and bus type into nodemgr. Because of this,
we can remove the EXPORT_SYMBOL for ieee1394_bus_type, since it's now
only used in ieee1394.ko.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r-- | drivers/ieee1394/dv1394.c | 6 | ||||
-rw-r--r-- | drivers/ieee1394/eth1394.c | 4 | ||||
-rw-r--r-- | drivers/ieee1394/ieee1394_core.c | 3 | ||||
-rw-r--r-- | drivers/ieee1394/nodemgr.c | 13 | ||||
-rw-r--r-- | drivers/ieee1394/nodemgr.h | 7 | ||||
-rw-r--r-- | drivers/ieee1394/raw1394.c | 6 | ||||
-rw-r--r-- | drivers/ieee1394/sbp2.c | 4 | ||||
-rw-r--r-- | drivers/ieee1394/video1394.c | 6 |
8 files changed, 22 insertions, 27 deletions
diff --git a/drivers/ieee1394/dv1394.c b/drivers/ieee1394/dv1394.c index 3bd78efd185..1084da4d88a 100644 --- a/drivers/ieee1394/dv1394.c +++ b/drivers/ieee1394/dv1394.c @@ -2180,12 +2180,8 @@ static struct ieee1394_device_id dv1394_id_table[] = { MODULE_DEVICE_TABLE(ieee1394, dv1394_id_table); static struct hpsb_protocol_driver dv1394_driver = { - .name = "DV/1394 Driver", + .name = "dv1394", .id_table = dv1394_id_table, - .driver = { - .name = "dv1394", - .bus = &ieee1394_bus_type, - }, }; diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c index 27d6c642415..97e5c3dd044 100644 --- a/drivers/ieee1394/eth1394.c +++ b/drivers/ieee1394/eth1394.c @@ -474,12 +474,10 @@ static struct ieee1394_device_id eth1394_id_table[] = { MODULE_DEVICE_TABLE(ieee1394, eth1394_id_table); static struct hpsb_protocol_driver eth1394_proto_driver = { - .name = "IPv4 over 1394 Driver", + .name = ETH1394_DRIVER_NAME, .id_table = eth1394_id_table, .update = eth1394_update, .driver = { - .name = ETH1394_DRIVER_NAME, - .bus = &ieee1394_bus_type, .probe = eth1394_probe, .remove = eth1394_remove, }, diff --git a/drivers/ieee1394/ieee1394_core.c b/drivers/ieee1394/ieee1394_core.c index 5fccf9f7a1d..7778ab3e8ea 100644 --- a/drivers/ieee1394/ieee1394_core.c +++ b/drivers/ieee1394/ieee1394_core.c @@ -1237,9 +1237,8 @@ EXPORT_SYMBOL(highlevel_remove_host); /** nodemgr.c **/ EXPORT_SYMBOL(hpsb_node_fill_packet); EXPORT_SYMBOL(hpsb_node_write); -EXPORT_SYMBOL(hpsb_register_protocol); +EXPORT_SYMBOL(__hpsb_register_protocol); EXPORT_SYMBOL(hpsb_unregister_protocol); -EXPORT_SYMBOL(ieee1394_bus_type); #ifdef CONFIG_IEEE1394_EXPORT_FULL_API EXPORT_SYMBOL(nodemgr_for_each_host); #endif diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index d2a543972c8..2953aebf4ef 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c @@ -1282,12 +1282,19 @@ static int nodemgr_uevent(struct class_device *cdev, char **envp, int num_envp, #endif /* CONFIG_HOTPLUG */ -int hpsb_register_protocol(struct hpsb_protocol_driver *driver) +int __hpsb_register_protocol(struct hpsb_protocol_driver *drv, + struct module *owner) { + int error; + + drv->driver.bus = &ieee1394_bus_type; + drv->driver.owner = owner; + drv->driver.name = drv->name; + /* This will cause a probe for devices */ - int error = driver_register(&driver->driver); + error = driver_register(&drv->driver); if (!error) - nodemgr_create_drv_files(driver); + nodemgr_create_drv_files(drv); return error; } diff --git a/drivers/ieee1394/nodemgr.h b/drivers/ieee1394/nodemgr.h index 0e1e7d93078..e25cbadb8be 100644 --- a/drivers/ieee1394/nodemgr.h +++ b/drivers/ieee1394/nodemgr.h @@ -144,7 +144,12 @@ struct hpsb_protocol_driver { struct device_driver driver; }; -int hpsb_register_protocol(struct hpsb_protocol_driver *driver); +int __hpsb_register_protocol(struct hpsb_protocol_driver *, struct module *); +static inline int hpsb_register_protocol(struct hpsb_protocol_driver *driver) +{ + return __hpsb_register_protocol(driver, THIS_MODULE); +} + void hpsb_unregister_protocol(struct hpsb_protocol_driver *driver); static inline int hpsb_node_entry_valid(struct node_entry *ne) diff --git a/drivers/ieee1394/raw1394.c b/drivers/ieee1394/raw1394.c index 4889383d309..ad2108f27a0 100644 --- a/drivers/ieee1394/raw1394.c +++ b/drivers/ieee1394/raw1394.c @@ -2987,12 +2987,8 @@ static struct ieee1394_device_id raw1394_id_table[] = { MODULE_DEVICE_TABLE(ieee1394, raw1394_id_table); static struct hpsb_protocol_driver raw1394_driver = { - .name = "raw1394 Driver", + .name = "raw1394", .id_table = raw1394_id_table, - .driver = { - .name = "raw1394", - .bus = &ieee1394_bus_type, - }, }; /******************************************************************************/ diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c index ab7059858bb..ffcd9e41454 100644 --- a/drivers/ieee1394/sbp2.c +++ b/drivers/ieee1394/sbp2.c @@ -259,12 +259,10 @@ static int sbp2_remove(struct device *); static int sbp2_update(struct unit_directory *); static struct hpsb_protocol_driver sbp2_driver = { - .name = "SBP2 Driver", + .name = SBP2_DEVICE_NAME, .id_table = sbp2_id_table, .update = sbp2_update, .driver = { - .name = SBP2_DEVICE_NAME, - .bus = &ieee1394_bus_type, .probe = sbp2_probe, .remove = sbp2_remove, }, diff --git a/drivers/ieee1394/video1394.c b/drivers/ieee1394/video1394.c index 77f58bc8313..598b19fc598 100644 --- a/drivers/ieee1394/video1394.c +++ b/drivers/ieee1394/video1394.c @@ -1308,12 +1308,8 @@ static struct ieee1394_device_id video1394_id_table[] = { MODULE_DEVICE_TABLE(ieee1394, video1394_id_table); static struct hpsb_protocol_driver video1394_driver = { - .name = "1394 Digital Camera Driver", + .name = VIDEO1394_DRIVER_NAME, .id_table = video1394_id_table, - .driver = { - .name = VIDEO1394_DRIVER_NAME, - .bus = &ieee1394_bus_type, - }, }; |