summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/video-buf-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/video/video-buf-dvb.c')
-rw-r--r--linux/drivers/media/video/video-buf-dvb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/linux/drivers/media/video/video-buf-dvb.c b/linux/drivers/media/video/video-buf-dvb.c
index 90d64d5a9..499302844 100644
--- a/linux/drivers/media/video/video-buf-dvb.c
+++ b/linux/drivers/media/video/video-buf-dvb.c
@@ -246,6 +246,9 @@ fail_dmxdev:
fail_dmx:
dvb_unregister_frontend(dvb->frontend);
fail_frontend:
+ dvb_detach(dvb->frontend->ops.release_sec, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.tuner_ops.release, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.release, dvb->frontend);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12))
dvb_unregister_adapter(&dvb->adapter);
#else
@@ -263,6 +266,9 @@ void videobuf_dvb_unregister(struct videobuf_dvb *dvb)
dvb_dmxdev_release(&dvb->dmxdev);
dvb_dmx_release(&dvb->demux);
dvb_unregister_frontend(dvb->frontend);
+ dvb_detach(dvb->frontend->ops.release_sec, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.tuner_ops.release, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.release, dvb->frontend);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12))
dvb_unregister_adapter(&dvb->adapter);
#else