summaryrefslogtreecommitdiff
path: root/drivers/media/dvb/mantis/mantis_dvb.c
diff options
context:
space:
mode:
authorManu Abraham <abraham.manu@gmail.com>2009-12-04 05:56:35 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-01-17 11:55:43 -0200
commit3e978a8284080d801d20cda377d9cf7c12fe68b9 (patch)
tree797536140340fc3c1b4e4968d0fdd44ddbbb2088 /drivers/media/dvb/mantis/mantis_dvb.c
parentad0ac434cb3b34640a4e81d7e80a1512c6e40253 (diff)
V4L/DVB (13797): [Mantis/Hopper/TDA665x] Large overhaul,
* Initial go at VP-3028, VP-3030 devices. * I2C communication improvements, * Add TDA665x support Signed-off-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/mantis/mantis_dvb.c')
-rw-r--r--drivers/media/dvb/mantis/mantis_dvb.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/media/dvb/mantis/mantis_dvb.c b/drivers/media/dvb/mantis/mantis_dvb.c
index be911d76daa7..42f658b06a66 100644
--- a/drivers/media/dvb/mantis/mantis_dvb.c
+++ b/drivers/media/dvb/mantis/mantis_dvb.c
@@ -252,14 +252,19 @@ int __devinit mantis_dvb_init(struct mantis_pci *mantis)
err5:
tasklet_kill(&mantis->tasklet);
dvb_net_release(&mantis->dvbnet);
+
err4:
mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem);
+
err3:
mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_hw);
+
err2:
dvb_dmxdev_release(&mantis->dmxdev);
+
err1:
dvb_dmx_release(&mantis->demux);
+
err0:
dvb_unregister_adapter(&mantis->dvb_adapter);
@@ -271,21 +276,24 @@ int __devexit mantis_dvb_exit(struct mantis_pci *mantis)
{
int err;
- err = mantis_frontend_shutdown(mantis);
- if (err != 0)
- dprintk(MANTIS_ERROR, 1, "Frontend exit while POWER ON! <%d>", err);
+ if (mantis->fe) {
+// mantis_ca_exit(mantis);
+ err = mantis_frontend_shutdown(mantis);
+ if (err != 0)
+ dprintk(MANTIS_ERROR, 1, "Frontend exit while POWER ON! <%d>", err);
+
+ dvb_unregister_frontend(mantis->fe);
+ }
-// mantis_ca_exit(mantis);
tasklet_kill(&mantis->tasklet);
dvb_net_release(&mantis->dvbnet);
+
mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem);
mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_hw);
+
dvb_dmxdev_release(&mantis->dmxdev);
dvb_dmx_release(&mantis->demux);
- if (mantis->fe)
- dvb_unregister_frontend(mantis->fe);
-
dprintk(MANTIS_DEBUG, 1, "dvb_unregister_adapter");
dvb_unregister_adapter(&mantis->dvb_adapter);