aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@m1k.net>2005-07-27 14:45:54 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-27 19:26:16 -0400
commitb6aef071bdef0cd9f69113bb3575aa45fafdbbbf (patch)
treed6c7d89190119811244f1c039671d7483296e7c1 /drivers/media/video
parent7fd0f3acfa7dfc6e8aba7ce1639b8590ddb98fea (diff)
[PATCH] dvb/v4l: lgdt3302: isolate tuner
Remove the dvb_pll_desc from the frontend and replace with a pll_set-callback to isolate the tuner programming from the frontend. Signed-off-by: Mac Michaels <wmichaels1@earthlink.net> Signed-off-by: Michael Krufky <mkrufky@m1k.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 6ad1458ab652..3a8551a02d0c 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * $Id: cx88-dvb.c,v 1.42 2005/07/12 15:44:55 mkrufky Exp $ 2 * $Id: cx88-dvb.c,v 1.47 2005/07/20 05:20:37 mkrufky Exp $
3 * 3 *
4 * device driver for Conexant 2388x based TV cards 4 * device driver for Conexant 2388x based TV cards
5 * MPEG Transport Stream (DVB) routines 5 * MPEG Transport Stream (DVB) routines
@@ -211,6 +211,18 @@ static struct or51132_config pchdtv_hd3000 = {
211#endif 211#endif
212 212
213#if CONFIG_DVB_LGDT3302 213#if CONFIG_DVB_LGDT3302
214static int lgdt3302_pll_set(struct dvb_frontend* fe,
215 struct dvb_frontend_parameters* params,
216 u8* pllbuf)
217{
218 struct cx8802_dev *dev= fe->dvb->priv;
219
220 pllbuf[0] = dev->core->pll_addr;
221 dvb_pll_configure(dev->core->pll_desc, &pllbuf[1],
222 params->frequency, 0);
223 return 0;
224}
225
214static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured) 226static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured)
215{ 227{
216 struct cx8802_dev *dev= fe->dvb->priv; 228 struct cx8802_dev *dev= fe->dvb->priv;
@@ -221,17 +233,9 @@ static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured)
221 return 0; 233 return 0;
222} 234}
223 235
224static struct lgdt3302_config fusionhdtv_3_gold_q = { 236static struct lgdt3302_config fusionhdtv_3_gold = {
225 .demod_address = 0x0e,
226 .pll_address = 0x61,
227 .pll_desc = &dvb_pll_microtune_4042,
228 .set_ts_params = lgdt3302_set_ts_param,
229};
230
231static struct lgdt3302_config fusionhdtv_3_gold_t = {
232 .demod_address = 0x0e, 237 .demod_address = 0x0e,
233 .pll_address = 0x61, 238 .pll_set = lgdt3302_pll_set,
234 .pll_desc = &dvb_pll_thomson_dtt7611,
235 .set_ts_params = lgdt3302_set_ts_param, 239 .set_ts_params = lgdt3302_set_ts_param,
236}; 240};
237#endif 241#endif
@@ -294,7 +298,9 @@ static int dvb_register(struct cx8802_dev *dev)
294 mdelay(100); 298 mdelay(100);
295 cx_set(MO_GP0_IO, 9); // ANT connector too FIXME 299 cx_set(MO_GP0_IO, 9); // ANT connector too FIXME
296 mdelay(200); 300 mdelay(200);
297 dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold_q, 301 dev->core->pll_addr = 0x61;
302 dev->core->pll_desc = &dvb_pll_microtune_4042;
303 dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold,
298 &dev->core->i2c_adap); 304 &dev->core->i2c_adap);
299 } 305 }
300 break; 306 break;
@@ -308,7 +314,9 @@ static int dvb_register(struct cx8802_dev *dev)
308 mdelay(100); 314 mdelay(100);
309 cx_set(MO_GP0_IO, 9); /* ANT connector too FIXME */ 315 cx_set(MO_GP0_IO, 9); /* ANT connector too FIXME */
310 mdelay(200); 316 mdelay(200);
311 dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold_t, 317 dev->core->pll_addr = 0x61;
318 dev->core->pll_desc = &dvb_pll_thomson_dtt7611;
319 dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold,
312 &dev->core->i2c_adap); 320 &dev->core->i2c_adap);
313 } 321 }
314 break; 322 break;