diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 34 |
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 |
214 | static 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 | |||
214 | static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured) | 226 | static 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 | ||
224 | static struct lgdt3302_config fusionhdtv_3_gold_q = { | 236 | static 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 | |||
231 | static 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; |