diff options
Diffstat (limited to 'drivers/media/dvb/ttpci/budget-av.c')
-rw-r--r-- | drivers/media/dvb/ttpci/budget-av.c | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/drivers/media/dvb/ttpci/budget-av.c b/drivers/media/dvb/ttpci/budget-av.c index 78d32f7e49fc..8b32e282bf5d 100644 --- a/drivers/media/dvb/ttpci/budget-av.c +++ b/drivers/media/dvb/ttpci/budget-av.c | |||
@@ -502,33 +502,33 @@ static int philips_su1278_ty_ci_set_symbol_rate(struct dvb_frontend *fe, u32 sra | |||
502 | return 0; | 502 | return 0; |
503 | } | 503 | } |
504 | 504 | ||
505 | static int philips_su1278_ty_ci_tuner_set_params(struct dvb_frontend *fe, | 505 | static int philips_su1278_ty_ci_tuner_set_params(struct dvb_frontend *fe) |
506 | struct dvb_frontend_parameters *params) | ||
507 | { | 506 | { |
507 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | ||
508 | u32 div; | 508 | u32 div; |
509 | u8 buf[4]; | 509 | u8 buf[4]; |
510 | struct budget *budget = (struct budget *) fe->dvb->priv; | 510 | struct budget *budget = (struct budget *) fe->dvb->priv; |
511 | struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) }; | 511 | struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) }; |
512 | 512 | ||
513 | if ((params->frequency < 950000) || (params->frequency > 2150000)) | 513 | if ((c->frequency < 950000) || (c->frequency > 2150000)) |
514 | return -EINVAL; | 514 | return -EINVAL; |
515 | 515 | ||
516 | div = (params->frequency + (125 - 1)) / 125; // round correctly | 516 | div = (c->frequency + (125 - 1)) / 125; /* round correctly */ |
517 | buf[0] = (div >> 8) & 0x7f; | 517 | buf[0] = (div >> 8) & 0x7f; |
518 | buf[1] = div & 0xff; | 518 | buf[1] = div & 0xff; |
519 | buf[2] = 0x80 | ((div & 0x18000) >> 10) | 4; | 519 | buf[2] = 0x80 | ((div & 0x18000) >> 10) | 4; |
520 | buf[3] = 0x20; | 520 | buf[3] = 0x20; |
521 | 521 | ||
522 | if (params->u.qpsk.symbol_rate < 4000000) | 522 | if (c->symbol_rate < 4000000) |
523 | buf[3] |= 1; | 523 | buf[3] |= 1; |
524 | 524 | ||
525 | if (params->frequency < 1250000) | 525 | if (c->frequency < 1250000) |
526 | buf[3] |= 0; | 526 | buf[3] |= 0; |
527 | else if (params->frequency < 1550000) | 527 | else if (c->frequency < 1550000) |
528 | buf[3] |= 0x40; | 528 | buf[3] |= 0x40; |
529 | else if (params->frequency < 2050000) | 529 | else if (c->frequency < 2050000) |
530 | buf[3] |= 0x80; | 530 | buf[3] |= 0x80; |
531 | else if (params->frequency < 2150000) | 531 | else if (c->frequency < 2150000) |
532 | buf[3] |= 0xC0; | 532 | buf[3] |= 0xC0; |
533 | 533 | ||
534 | if (fe->ops.i2c_gate_ctrl) | 534 | if (fe->ops.i2c_gate_ctrl) |
@@ -617,8 +617,9 @@ static struct stv0299_config cinergy_1200s_1894_0010_config = { | |||
617 | .set_symbol_rate = philips_su1278_ty_ci_set_symbol_rate, | 617 | .set_symbol_rate = philips_su1278_ty_ci_set_symbol_rate, |
618 | }; | 618 | }; |
619 | 619 | ||
620 | static int philips_cu1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | 620 | static int philips_cu1216_tuner_set_params(struct dvb_frontend *fe) |
621 | { | 621 | { |
622 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | ||
622 | struct budget *budget = (struct budget *) fe->dvb->priv; | 623 | struct budget *budget = (struct budget *) fe->dvb->priv; |
623 | u8 buf[6]; | 624 | u8 buf[6]; |
624 | struct i2c_msg msg = {.addr = 0x60,.flags = 0,.buf = buf,.len = sizeof(buf) }; | 625 | struct i2c_msg msg = {.addr = 0x60,.flags = 0,.buf = buf,.len = sizeof(buf) }; |
@@ -627,13 +628,13 @@ static int philips_cu1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_f | |||
627 | #define CU1216_IF 36125000 | 628 | #define CU1216_IF 36125000 |
628 | #define TUNER_MUL 62500 | 629 | #define TUNER_MUL 62500 |
629 | 630 | ||
630 | u32 div = (params->frequency + CU1216_IF + TUNER_MUL / 2) / TUNER_MUL; | 631 | u32 div = (c->frequency + CU1216_IF + TUNER_MUL / 2) / TUNER_MUL; |
631 | 632 | ||
632 | buf[0] = (div >> 8) & 0x7f; | 633 | buf[0] = (div >> 8) & 0x7f; |
633 | buf[1] = div & 0xff; | 634 | buf[1] = div & 0xff; |
634 | buf[2] = 0xce; | 635 | buf[2] = 0xce; |
635 | buf[3] = (params->frequency < 150000000 ? 0x01 : | 636 | buf[3] = (c->frequency < 150000000 ? 0x01 : |
636 | params->frequency < 445000000 ? 0x02 : 0x04); | 637 | c->frequency < 445000000 ? 0x02 : 0x04); |
637 | buf[4] = 0xde; | 638 | buf[4] = 0xde; |
638 | buf[5] = 0x20; | 639 | buf[5] = 0x20; |
639 | 640 | ||
@@ -697,8 +698,9 @@ static int philips_tu1216_tuner_init(struct dvb_frontend *fe) | |||
697 | return 0; | 698 | return 0; |
698 | } | 699 | } |
699 | 700 | ||
700 | static int philips_tu1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | 701 | static int philips_tu1216_tuner_set_params(struct dvb_frontend *fe) |
701 | { | 702 | { |
703 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | ||
702 | struct budget *budget = (struct budget *) fe->dvb->priv; | 704 | struct budget *budget = (struct budget *) fe->dvb->priv; |
703 | u8 tuner_buf[4]; | 705 | u8 tuner_buf[4]; |
704 | struct i2c_msg tuner_msg = {.addr = 0x60,.flags = 0,.buf = tuner_buf,.len = | 706 | struct i2c_msg tuner_msg = {.addr = 0x60,.flags = 0,.buf = tuner_buf,.len = |
@@ -707,7 +709,7 @@ static int philips_tu1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_f | |||
707 | u8 band, cp, filter; | 709 | u8 band, cp, filter; |
708 | 710 | ||
709 | // determine charge pump | 711 | // determine charge pump |
710 | tuner_frequency = params->frequency + 36166000; | 712 | tuner_frequency = c->frequency + 36166000; |
711 | if (tuner_frequency < 87000000) | 713 | if (tuner_frequency < 87000000) |
712 | return -EINVAL; | 714 | return -EINVAL; |
713 | else if (tuner_frequency < 130000000) | 715 | else if (tuner_frequency < 130000000) |
@@ -732,28 +734,28 @@ static int philips_tu1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_f | |||
732 | return -EINVAL; | 734 | return -EINVAL; |
733 | 735 | ||
734 | // determine band | 736 | // determine band |
735 | if (params->frequency < 49000000) | 737 | if (c->frequency < 49000000) |
736 | return -EINVAL; | 738 | return -EINVAL; |
737 | else if (params->frequency < 161000000) | 739 | else if (c->frequency < 161000000) |
738 | band = 1; | 740 | band = 1; |
739 | else if (params->frequency < 444000000) | 741 | else if (c->frequency < 444000000) |
740 | band = 2; | 742 | band = 2; |
741 | else if (params->frequency < 861000000) | 743 | else if (c->frequency < 861000000) |
742 | band = 4; | 744 | band = 4; |
743 | else | 745 | else |
744 | return -EINVAL; | 746 | return -EINVAL; |
745 | 747 | ||
746 | // setup PLL filter | 748 | // setup PLL filter |
747 | switch (params->u.ofdm.bandwidth) { | 749 | switch (c->bandwidth_hz) { |
748 | case BANDWIDTH_6_MHZ: | 750 | case 6000000: |
749 | filter = 0; | 751 | filter = 0; |
750 | break; | 752 | break; |
751 | 753 | ||
752 | case BANDWIDTH_7_MHZ: | 754 | case 7000000: |
753 | filter = 0; | 755 | filter = 0; |
754 | break; | 756 | break; |
755 | 757 | ||
756 | case BANDWIDTH_8_MHZ: | 758 | case 8000000: |
757 | filter = 1; | 759 | filter = 1; |
758 | break; | 760 | break; |
759 | 761 | ||
@@ -763,7 +765,7 @@ static int philips_tu1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_f | |||
763 | 765 | ||
764 | // calculate divisor | 766 | // calculate divisor |
765 | // ((36166000+((1000000/6)/2)) + Finput)/(1000000/6) | 767 | // ((36166000+((1000000/6)/2)) + Finput)/(1000000/6) |
766 | tuner_frequency = (((params->frequency / 1000) * 6) + 217496) / 1000; | 768 | tuner_frequency = (((c->frequency / 1000) * 6) + 217496) / 1000; |
767 | 769 | ||
768 | // setup tuner buffer | 770 | // setup tuner buffer |
769 | tuner_buf[0] = (tuner_frequency >> 8) & 0x7f; | 771 | tuner_buf[0] = (tuner_frequency >> 8) & 0x7f; |