summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/ttpci
diff options
context:
space:
mode:
authorKenneth Aafloy <devnull@localhost>2004-07-12 18:15:34 +0000
committerKenneth Aafloy <devnull@localhost>2004-07-12 18:15:34 +0000
commitbcfcd8a4a5a3ab5bac73391be855e5770379d504 (patch)
tree6682191b2ae7be87ef4867d5ae4d2c0c334e945b /linux/drivers/media/dvb/ttpci
parent481ccf4d48f8ed8928ab6d2ef02b39a6349ac300 (diff)
downloadmediapointer-dvb-s2-bcfcd8a4a5a3ab5bac73391be855e5770379d504.tar.gz
mediapointer-dvb-s2-bcfcd8a4a5a3ab5bac73391be855e5770379d504.tar.bz2
- Properly lock the frontend module on open/close.
- Remove module ref count changes to av7110 and budget-core, as they did not do the right thing.
Diffstat (limited to 'linux/drivers/media/dvb/ttpci')
-rw-r--r--linux/drivers/media/dvb/ttpci/av7110.c12
-rw-r--r--linux/drivers/media/dvb/ttpci/budget-core.c10
2 files changed, 3 insertions, 19 deletions
diff --git a/linux/drivers/media/dvb/ttpci/av7110.c b/linux/drivers/media/dvb/ttpci/av7110.c
index 5d9028e9a..3a2d1d23a 100644
--- a/linux/drivers/media/dvb/ttpci/av7110.c
+++ b/linux/drivers/media/dvb/ttpci/av7110.c
@@ -1409,10 +1409,6 @@ 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(THIS_MODULE)) {
- return -EIO;
- }
-
/* fixme: check for "type" (ie. frontend type) */
if (client->driver->command)
return client->driver->command(client, FE_REGISTER, av7110->dvb_adapter);
@@ -1423,15 +1419,11 @@ 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)
- ret = client->driver->command(client, FE_UNREGISTER, av7110->dvb_adapter);
-
- module_put(THIS_MODULE);
-
- return ret;
+ return client->driver->command(client, FE_UNREGISTER, av7110->dvb_adapter);
+ return 0;
}
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 c2dc9279e..c1172e96a 100644
--- a/linux/drivers/media/dvb/ttpci/budget-core.c
+++ b/linux/drivers/media/dvb/ttpci/budget-core.c
@@ -271,10 +271,6 @@ 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(THIS_MODULE)) {
- return -EIO;
- }
-
if (client->driver->command)
return client->driver->command(client, FE_REGISTER, budget->dvb_adapter);
return 0;
@@ -284,13 +280,9 @@ 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)
- ret = client->driver->command(client, FE_UNREGISTER, budget->dvb_adapter);
-
- module_put(THIS_MODULE);
-
+ return client->driver->command(client, FE_UNREGISTER, budget->dvb_adapter);
return 0;
}