aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885-dvb.c
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2007-12-24 02:52:08 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 16:04:20 -0500
commit4041f1a58774249f5f26163e68b844521ece1fb4 (patch)
treeefca731ac2488ca2f5bdf5b5e7dd11b6dfd5b48a /drivers/media/video/cx23885/cx23885-dvb.c
parentc90762799c42df203fc2c9c1a2ac39f154f8faca (diff)
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 <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-dvb.c')
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c10
1 files changed, 9 insertions, 1 deletions
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 @@
33#include "s5h1409.h" 33#include "s5h1409.h"
34#include "mt2131.h" 34#include "mt2131.h"
35#include "tda8290.h" 35#include "tda8290.h"
36#include "tda18271.h"
36#include "lgdt330x.h" 37#include "lgdt330x.h"
37#include "xc5000.h" 38#include "xc5000.h"
38#include "dvb-pll.h" 39#include "dvb-pll.h"
@@ -178,6 +179,10 @@ static struct xc5000_config hauppauge_hvr1500q_tunerconfig = {
178 .tuner_reset = hauppauge_hvr1500q_tuner_reset 179 .tuner_reset = hauppauge_hvr1500q_tuner_reset
179}; 180};
180 181
182static struct tda829x_config tda829x_no_probe = {
183 .probe_tuner = TDA829X_DONT_PROBE,
184};
185
181static int cx23885_hvr1500_xc3028_callback(void *ptr, int command, int arg) 186static int cx23885_hvr1500_xc3028_callback(void *ptr, int command, int arg)
182{ 187{
183 struct cx23885_tsport *port = ptr; 188 struct cx23885_tsport *port = ptr;
@@ -240,7 +245,10 @@ static int dvb_register(struct cx23885_tsport *port)
240 if (port->dvb.frontend != NULL) { 245 if (port->dvb.frontend != NULL) {
241 dvb_attach(tda829x_attach, port->dvb.frontend, 246 dvb_attach(tda829x_attach, port->dvb.frontend,
242 &dev->i2c_bus[1].i2c_adap, 0x42, 247 &dev->i2c_bus[1].i2c_adap, 0x42,
243 NULL); 248 &tda829x_no_probe);
249 dvb_attach(tda18271_attach, port->dvb.frontend,
250 0x60, &dev->i2c_bus[1].i2c_adap,
251 TDA18271_GATE_ANALOG);
244 } 252 }
245 break; 253 break;
246 case 0: 254 case 0: