Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed30c26e authored by Ben Collins's avatar Ben Collins Committed by Stefan Richter
Browse files

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: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 9b7d9c09
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -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",
	.id_table	= dv1394_id_table,
	.driver         = {
	.name		= "dv1394",
		.bus	= &ieee1394_bus_type,
	},
	.id_table	= dv1394_id_table,
};


+1 −3
Original line number Diff line number Diff line
@@ -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,
	},
+1 −2
Original line number Diff line number Diff line
@@ -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
+10 −3
Original line number Diff line number Diff line
@@ -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;
}

+6 −1
Original line number Diff line number Diff line
@@ -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)
Loading