diff options
Diffstat (limited to 'drivers/media/dvb/bt8xx/dvb-bt8xx.c')
-rw-r--r-- | drivers/media/dvb/bt8xx/dvb-bt8xx.c | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/drivers/media/dvb/bt8xx/dvb-bt8xx.c index 5948601ec809..87e4c72989d1 100644 --- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c +++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c | |||
@@ -148,8 +148,9 @@ static int thomson_dtt7579_demod_init(struct dvb_frontend* fe) | |||
148 | return 0; | 148 | return 0; |
149 | } | 149 | } |
150 | 150 | ||
151 | static int thomson_dtt7579_tuner_calc_regs(struct dvb_frontend* fe, struct dvb_frontend_parameters* params, u8* pllbuf, int buf_len) | 151 | static int thomson_dtt7579_tuner_calc_regs(struct dvb_frontend *fe, u8* pllbuf, int buf_len) |
152 | { | 152 | { |
153 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | ||
153 | u32 div; | 154 | u32 div; |
154 | unsigned char bs = 0; | 155 | unsigned char bs = 0; |
155 | unsigned char cp = 0; | 156 | unsigned char cp = 0; |
@@ -157,18 +158,18 @@ static int thomson_dtt7579_tuner_calc_regs(struct dvb_frontend* fe, struct dvb_f | |||
157 | if (buf_len < 5) | 158 | if (buf_len < 5) |
158 | return -EINVAL; | 159 | return -EINVAL; |
159 | 160 | ||
160 | div = (((params->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6; | 161 | div = (((c->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6; |
161 | 162 | ||
162 | if (params->frequency < 542000000) | 163 | if (c->frequency < 542000000) |
163 | cp = 0xb4; | 164 | cp = 0xb4; |
164 | else if (params->frequency < 771000000) | 165 | else if (c->frequency < 771000000) |
165 | cp = 0xbc; | 166 | cp = 0xbc; |
166 | else | 167 | else |
167 | cp = 0xf4; | 168 | cp = 0xf4; |
168 | 169 | ||
169 | if (params->frequency == 0) | 170 | if (c->frequency == 0) |
170 | bs = 0x03; | 171 | bs = 0x03; |
171 | else if (params->frequency < 443250000) | 172 | else if (c->frequency < 443250000) |
172 | bs = 0x02; | 173 | bs = 0x02; |
173 | else | 174 | else |
174 | bs = 0x08; | 175 | bs = 0x08; |
@@ -342,50 +343,51 @@ static int advbt771_samsung_tdtc9251dh0_demod_init(struct dvb_frontend* fe) | |||
342 | return 0; | 343 | return 0; |
343 | } | 344 | } |
344 | 345 | ||
345 | static int advbt771_samsung_tdtc9251dh0_tuner_calc_regs(struct dvb_frontend* fe, struct dvb_frontend_parameters* params, u8* pllbuf, int buf_len) | 346 | static int advbt771_samsung_tdtc9251dh0_tuner_calc_regs(struct dvb_frontend *fe, u8 *pllbuf, int buf_len) |
346 | { | 347 | { |
348 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | ||
347 | u32 div; | 349 | u32 div; |
348 | unsigned char bs = 0; | 350 | unsigned char bs = 0; |
349 | unsigned char cp = 0; | 351 | unsigned char cp = 0; |
350 | 352 | ||
351 | if (buf_len < 5) return -EINVAL; | 353 | if (buf_len < 5) return -EINVAL; |
352 | 354 | ||
353 | div = (((params->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6; | 355 | div = (((c->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6; |
354 | 356 | ||
355 | if (params->frequency < 150000000) | 357 | if (c->frequency < 150000000) |
356 | cp = 0xB4; | 358 | cp = 0xB4; |
357 | else if (params->frequency < 173000000) | 359 | else if (c->frequency < 173000000) |
358 | cp = 0xBC; | 360 | cp = 0xBC; |
359 | else if (params->frequency < 250000000) | 361 | else if (c->frequency < 250000000) |
360 | cp = 0xB4; | 362 | cp = 0xB4; |
361 | else if (params->frequency < 400000000) | 363 | else if (c->frequency < 400000000) |
362 | cp = 0xBC; | 364 | cp = 0xBC; |
363 | else if (params->frequency < 420000000) | 365 | else if (c->frequency < 420000000) |
364 | cp = 0xF4; | 366 | cp = 0xF4; |
365 | else if (params->frequency < 470000000) | 367 | else if (c->frequency < 470000000) |
366 | cp = 0xFC; | 368 | cp = 0xFC; |
367 | else if (params->frequency < 600000000) | 369 | else if (c->frequency < 600000000) |
368 | cp = 0xBC; | 370 | cp = 0xBC; |
369 | else if (params->frequency < 730000000) | 371 | else if (c->frequency < 730000000) |
370 | cp = 0xF4; | 372 | cp = 0xF4; |
371 | else | 373 | else |
372 | cp = 0xFC; | 374 | cp = 0xFC; |
373 | 375 | ||
374 | if (params->frequency < 150000000) | 376 | if (c->frequency < 150000000) |
375 | bs = 0x01; | 377 | bs = 0x01; |
376 | else if (params->frequency < 173000000) | 378 | else if (c->frequency < 173000000) |
377 | bs = 0x01; | 379 | bs = 0x01; |
378 | else if (params->frequency < 250000000) | 380 | else if (c->frequency < 250000000) |
379 | bs = 0x02; | 381 | bs = 0x02; |
380 | else if (params->frequency < 400000000) | 382 | else if (c->frequency < 400000000) |
381 | bs = 0x02; | 383 | bs = 0x02; |
382 | else if (params->frequency < 420000000) | 384 | else if (c->frequency < 420000000) |
383 | bs = 0x02; | 385 | bs = 0x02; |
384 | else if (params->frequency < 470000000) | 386 | else if (c->frequency < 470000000) |
385 | bs = 0x02; | 387 | bs = 0x02; |
386 | else if (params->frequency < 600000000) | 388 | else if (c->frequency < 600000000) |
387 | bs = 0x08; | 389 | bs = 0x08; |
388 | else if (params->frequency < 730000000) | 390 | else if (c->frequency < 730000000) |
389 | bs = 0x08; | 391 | bs = 0x08; |
390 | else | 392 | else |
391 | bs = 0x08; | 393 | bs = 0x08; |
@@ -514,31 +516,31 @@ static int digitv_alps_tded4_demod_init(struct dvb_frontend* fe) | |||
514 | return 0; | 516 | return 0; |
515 | } | 517 | } |
516 | 518 | ||
517 | static int digitv_alps_tded4_tuner_calc_regs(struct dvb_frontend* fe, struct dvb_frontend_parameters* params, u8* pllbuf, int buf_len) | 519 | static int digitv_alps_tded4_tuner_calc_regs(struct dvb_frontend *fe, u8 *pllbuf, int buf_len) |
518 | { | 520 | { |
519 | u32 div; | 521 | u32 div; |
520 | struct dvb_ofdm_parameters *op = ¶ms->u.ofdm; | 522 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
521 | 523 | ||
522 | if (buf_len < 5) | 524 | if (buf_len < 5) |
523 | return -EINVAL; | 525 | return -EINVAL; |
524 | 526 | ||
525 | div = (((params->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6; | 527 | div = (((c->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6; |
526 | 528 | ||
527 | pllbuf[0] = 0x61; | 529 | pllbuf[0] = 0x61; |
528 | pllbuf[1] = (div >> 8) & 0x7F; | 530 | pllbuf[1] = (div >> 8) & 0x7F; |
529 | pllbuf[2] = div & 0xFF; | 531 | pllbuf[2] = div & 0xFF; |
530 | pllbuf[3] = 0x85; | 532 | pllbuf[3] = 0x85; |
531 | 533 | ||
532 | dprintk("frequency %u, div %u\n", params->frequency, div); | 534 | dprintk("frequency %u, div %u\n", c->frequency, div); |
533 | 535 | ||
534 | if (params->frequency < 470000000) | 536 | if (c->frequency < 470000000) |
535 | pllbuf[4] = 0x02; | 537 | pllbuf[4] = 0x02; |
536 | else if (params->frequency > 823000000) | 538 | else if (c->frequency > 823000000) |
537 | pllbuf[4] = 0x88; | 539 | pllbuf[4] = 0x88; |
538 | else | 540 | else |
539 | pllbuf[4] = 0x08; | 541 | pllbuf[4] = 0x08; |
540 | 542 | ||
541 | if (op->bandwidth == 8) | 543 | if (c->bandwidth_hz == 8000000) |
542 | pllbuf[4] |= 0x04; | 544 | pllbuf[4] |= 0x04; |
543 | 545 | ||
544 | return 5; | 546 | return 5; |