aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/tm6000/tm6000-dvb.c
diff options
context:
space:
mode:
authorMichel Ludwig <michel.ludwig@gmail.com>2007-11-19 06:10:54 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-18 00:40:01 -0300
commit70bfae5aaf7254f3cdfc1647441ff2b595933f09 (patch)
treeaa2420e45eabff4b23fd9bc33c4c0e1ac5bdb388 /drivers/staging/tm6000/tm6000-dvb.c
parentV4L/DVB (12817): tm6000: add a missing symbol_put (diff)
downloadlinux-dev-70bfae5aaf7254f3cdfc1647441ff2b595933f09.tar.xz
linux-dev-70bfae5aaf7254f3cdfc1647441ff2b595933f09.zip
V4L/DVB (12818): tm6000: Use dvb_frontend_detach instead of single symbol_put commands
Thanks to Mike Krufky for pointed that one out. Also include some minor cleanups. Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging/tm6000/tm6000-dvb.c')
-rw-r--r--drivers/staging/tm6000/tm6000-dvb.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/staging/tm6000/tm6000-dvb.c b/drivers/staging/tm6000/tm6000-dvb.c
index b423795f0017..fa6d3a00f9b0 100644
--- a/drivers/staging/tm6000/tm6000-dvb.c
+++ b/drivers/staging/tm6000/tm6000-dvb.c
@@ -205,12 +205,7 @@ int tm6000_dvb_attach_frontend(struct tm6000_core *dev)
return -1;
}
- if(dvb->frontend) {
- return 0;
- }
- else {
- return -1;
- }
+ return (!dvb->frontend) ? -1 : 0;
}
int tm6000_dvb_register(struct tm6000_core *dev)
@@ -226,7 +221,7 @@ int tm6000_dvb_register(struct tm6000_core *dev)
ret = tm6000_dvb_attach_frontend(dev);
if(ret < 0) {
printk(KERN_ERR "tm6000: couldn't attach the frontend!\n");
-// goto err;
+ goto err;
}
ret = dvb_register_adapter(&dvb->adapter, "Trident TVMaster 6000 DVB-T",
@@ -250,7 +245,7 @@ int tm6000_dvb_register(struct tm6000_core *dev)
printk(KERN_ERR "tm6000: couldn't register "
"frontend (xc3028)\n");
ret = -EINVAL;
- goto adapter_err;
+ goto frontend_err;
}
printk(KERN_INFO "tm6000: XC2028/3028 asked to be "
"attached to frontend!\n");
@@ -288,10 +283,8 @@ dvb_dmx_err:
dvb_dmx_release(&dvb->demux);
frontend_err:
if(dvb->frontend) {
+ dvb_frontend_detach(dvb->frontend);
dvb_unregister_frontend(dvb->frontend);
-#ifdef CONFIG_DVB_CORE_ATTACH
- symbol_put(xc3028_attach);
-#endif
}
adapter_err:
dvb_unregister_adapter(&dvb->adapter);
@@ -314,10 +307,8 @@ void tm6000_dvb_unregister(struct tm6000_core *dev)
// mutex_lock(&tm6000_driver.open_close_mutex);
if(dvb->frontend) {
+ dvb_frontend_detach(dvb->frontend);
dvb_unregister_frontend(dvb->frontend);
-#ifdef CONFIG_DVB_CORE_ATTACH
- symbol_put(xc3028_attach);
-#endif
}
dvb_dmxdev_release(&dvb->dmxdev);