diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2007-12-24 02:52:08 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:04:20 -0500 |
commit | 4041f1a58774249f5f26163e68b844521ece1fb4 (patch) | |
tree | efca731ac2488ca2f5bdf5b5e7dd11b6dfd5b48a /drivers/media/video/cx23885 | |
parent | c90762799c42df203fc2c9c1a2ac39f154f8faca (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')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 10 |
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 | ||
182 | static struct tda829x_config tda829x_no_probe = { | ||
183 | .probe_tuner = TDA829X_DONT_PROBE, | ||
184 | }; | ||
185 | |||
181 | static int cx23885_hvr1500_xc3028_callback(void *ptr, int command, int arg) | 186 | static 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: |