summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/video-buf-dvb.c
diff options
context:
space:
mode:
authorAndrew de Quincey2006-08-08 14:10:08 +0200
committerMauro Carvalho Chehab2006-09-26 16:53:25 +0200
commit2bfe031df6bd5e3b8e503eba8e3b6461d7c2c27e (patch)
tree2d7288c2221fb6f7ef98ef7a1ee3fef3f04cf87e /drivers/media/video/video-buf-dvb.c
parentV4L/DVB (4385): Add dvb_attach() macro and supporting routines (diff)
downloadkernel-qcow2-linux-2bfe031df6bd5e3b8e503eba8e3b6461d7c2c27e.tar.gz
kernel-qcow2-linux-2bfe031df6bd5e3b8e503eba8e3b6461d7c2c27e.tar.xz
kernel-qcow2-linux-2bfe031df6bd5e3b8e503eba8e3b6461d7c2c27e.zip
V4L/DVB (4386): Convert DVB devices to use dvb_attach()
Only devices using > 1 frontend were ported; ones which did not are left using static binding. Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net> Acked-by: Michael Krufky <mkrufky@linuxtv.org> Acked-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/video-buf-dvb.c')
-rw-r--r--drivers/media/video/video-buf-dvb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/video/video-buf-dvb.c b/drivers/media/video/video-buf-dvb.c
index 7ee8a53cd336..376d354b27f6 100644
--- a/drivers/media/video/video-buf-dvb.c
+++ b/drivers/media/video/video-buf-dvb.c
@@ -223,6 +223,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);
dvb_unregister_adapter(&dvb->adapter);
fail_adapter:
return result;
@@ -236,6 +239,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);
dvb_unregister_adapter(&dvb->adapter);
}