From 4041f1a58774249f5f26163e68b844521ece1fb4 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Mon, 24 Dec 2007 04:52:08 -0300 Subject: [PATCH] V4L/DVB (6909): cx23885: fix bad use count caused by tda18271 being probed by tda8290 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 Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/cx23885/cx23885-dvb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 0f7e9dfcd73f..81dd47f6f654 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c @@ -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: