]> err.no Git - linux-2.6/commitdiff
V4L/DVB (6909): cx23885: fix bad use count caused by tda18271 being probed by tda8290
authorMichael Krufky <mkrufky@linuxtv.org>
Mon, 24 Dec 2007 07:52:08 +0000 (04:52 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Jan 2008 21:04:20 +0000 (19:04 -0200)
Don't allow the tda8290 module to probe and attach the tuner module,
causing incorrect use counts when using dvb_attach.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cx23885/cx23885-dvb.c

index 0f7e9dfcd73f897463aef3ea3a00f343c2519ad7..81dd47f6f654bfd6302f827fc43cc30d5e33cf95 100644 (file)
@@ -33,6 +33,7 @@
 #include "s5h1409.h"
 #include "mt2131.h"
 #include "tda8290.h"
+#include "tda18271.h"
 #include "lgdt330x.h"
 #include "xc5000.h"
 #include "dvb-pll.h"
@@ -178,6 +179,10 @@ static struct xc5000_config hauppauge_hvr1500q_tunerconfig = {
        .tuner_reset      = hauppauge_hvr1500q_tuner_reset
 };
 
+static struct tda829x_config tda829x_no_probe = {
+       .probe_tuner = TDA829X_DONT_PROBE,
+};
+
 static int cx23885_hvr1500_xc3028_callback(void *ptr, int command, int arg)
 {
        struct cx23885_tsport *port = ptr;
@@ -240,7 +245,10 @@ static int dvb_register(struct cx23885_tsport *port)
                        if (port->dvb.frontend != NULL) {
                                dvb_attach(tda829x_attach, port->dvb.frontend,
                                           &dev->i2c_bus[1].i2c_adap, 0x42,
-                                          NULL);
+                                          &tda829x_no_probe);
+                               dvb_attach(tda18271_attach, port->dvb.frontend,
+                                          0x60, &dev->i2c_bus[1].i2c_adap,
+                                          TDA18271_GATE_ANALOG);
                        }
                        break;
                case 0: