From e8fb0223d74bc481f46c67b67b02428beea9fdeb Mon Sep 17 00:00:00 2001 From: Kenneth Aafloy Date: Sat, 10 Jul 2004 23:26:11 +0000 Subject: Up the driver module usage on i2c client_register, not the frontend module. --- linux/drivers/media/dvb/ttpci/av7110.c | 12 +++++------- linux/drivers/media/dvb/ttpci/budget-core.c | 10 ++++------ 2 files changed, 9 insertions(+), 13 deletions(-) (limited to 'linux/drivers/media') diff --git a/linux/drivers/media/dvb/ttpci/av7110.c b/linux/drivers/media/dvb/ttpci/av7110.c index 628a5e5ec..5d9028e9a 100644 --- a/linux/drivers/media/dvb/ttpci/av7110.c +++ b/linux/drivers/media/dvb/ttpci/av7110.c @@ -1409,10 +1409,7 @@ int client_register(struct i2c_client *client) struct saa7146_dev *dev = (struct saa7146_dev*)i2c_get_adapdata(client->adapter); struct av7110 *av7110 = (struct av7110*)dev->ext_priv; - if (!try_module_get(client->driver->owner)) { - printk("Unable to get module lock for '%s'.\n", - client->driver->name); - // XXX - Unregister + if (!try_module_get(THIS_MODULE)) { return -EIO; } @@ -1426,14 +1423,15 @@ int client_unregister(struct i2c_client *client) { struct saa7146_dev *dev = (struct saa7146_dev*)i2c_get_adapdata(client->adapter); struct av7110 *av7110 = (struct av7110*)dev->ext_priv; + int ret = 0; /* fixme: check for "type" (ie. frontend type) */ if (client->driver->command) - return client->driver->command(client, FE_UNREGISTER, av7110->dvb_adapter); + ret = client->driver->command(client, FE_UNREGISTER, av7110->dvb_adapter); - module_put(client->driver->owner); + module_put(THIS_MODULE); - return 0; + return ret; } static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_data *pci_ext) diff --git a/linux/drivers/media/dvb/ttpci/budget-core.c b/linux/drivers/media/dvb/ttpci/budget-core.c index d1229fd43..c2dc9279e 100644 --- a/linux/drivers/media/dvb/ttpci/budget-core.c +++ b/linux/drivers/media/dvb/ttpci/budget-core.c @@ -271,10 +271,7 @@ int client_register(struct i2c_client *client) struct saa7146_dev *dev = (struct saa7146_dev*)i2c_get_adapdata(client->adapter); struct budget *budget = (struct budget*)dev->ext_priv; - if (!try_module_get(client->driver->owner)) { - printk("Unable to get module lock for '%s'.\n", - client->driver->name); - // XXX - Unregister + if (!try_module_get(THIS_MODULE)) { return -EIO; } @@ -287,11 +284,12 @@ int client_unregister(struct i2c_client *client) { struct saa7146_dev *dev = (struct saa7146_dev*)i2c_get_adapdata(client->adapter); struct budget *budget = (struct budget*)dev->ext_priv; + int ret = 0; if (client->driver->command) - return client->driver->command(client, FE_UNREGISTER, budget->dvb_adapter); + ret = client->driver->command(client, FE_UNREGISTER, budget->dvb_adapter); - module_put(client->driver->owner); + module_put(THIS_MODULE); return 0; } -- cgit v1.2.3