diff options
author | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-07-11 01:58:04 -0400 |
---|---|---|
committer | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-07-11 01:58:04 -0400 |
commit | e0d21d9cca25f424f3129649be48a63c128ed42d (patch) | |
tree | 0a7d407639876e02deef1721817615eaa8c673a3 /drivers/media/dvb/ttpci/budget-ci.c | |
parent | beffbdc2211826b174c68307b1b48c93c05d7ded (diff) | |
parent | 5c23804a0941a111752fdacefe0bea2db1b4d93f (diff) |
Merge rsync://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/media/dvb/ttpci/budget-ci.c')
-rw-r--r-- | drivers/media/dvb/ttpci/budget-ci.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c index dce116111376..a1267054bc01 100644 --- a/drivers/media/dvb/ttpci/budget-ci.c +++ b/drivers/media/dvb/ttpci/budget-ci.c | |||
@@ -69,6 +69,7 @@ struct budget_ci { | |||
69 | int slot_status; | 69 | int slot_status; |
70 | struct dvb_ca_en50221 ca; | 70 | struct dvb_ca_en50221 ca; |
71 | char ir_dev_name[50]; | 71 | char ir_dev_name[50]; |
72 | u8 tuner_pll_address; /* used for philips_tdm1316l configs */ | ||
72 | }; | 73 | }; |
73 | 74 | ||
74 | /* from reading the following remotes: | 75 | /* from reading the following remotes: |
@@ -723,7 +724,7 @@ static int philips_tdm1316l_pll_init(struct dvb_frontend *fe) | |||
723 | struct budget_ci *budget_ci = (struct budget_ci *) fe->dvb->priv; | 724 | struct budget_ci *budget_ci = (struct budget_ci *) fe->dvb->priv; |
724 | static u8 td1316_init[] = { 0x0b, 0xf5, 0x85, 0xab }; | 725 | static u8 td1316_init[] = { 0x0b, 0xf5, 0x85, 0xab }; |
725 | static u8 disable_mc44BC374c[] = { 0x1d, 0x74, 0xa0, 0x68 }; | 726 | static u8 disable_mc44BC374c[] = { 0x1d, 0x74, 0xa0, 0x68 }; |
726 | struct i2c_msg tuner_msg = {.addr = 0x63,.flags = 0,.buf = td1316_init,.len = | 727 | struct i2c_msg tuner_msg = {.addr = budget_ci->tuner_pll_address,.flags = 0,.buf = td1316_init,.len = |
727 | sizeof(td1316_init) }; | 728 | sizeof(td1316_init) }; |
728 | 729 | ||
729 | // setup PLL configuration | 730 | // setup PLL configuration |
@@ -746,7 +747,7 @@ static int philips_tdm1316l_pll_set(struct dvb_frontend *fe, struct dvb_frontend | |||
746 | { | 747 | { |
747 | struct budget_ci *budget_ci = (struct budget_ci *) fe->dvb->priv; | 748 | struct budget_ci *budget_ci = (struct budget_ci *) fe->dvb->priv; |
748 | u8 tuner_buf[4]; | 749 | u8 tuner_buf[4]; |
749 | struct i2c_msg tuner_msg = {.addr = 0x63,.flags = 0,.buf = tuner_buf,.len = sizeof(tuner_buf) }; | 750 | struct i2c_msg tuner_msg = {.addr = budget_ci->tuner_pll_address,.flags = 0,.buf = tuner_buf,.len = sizeof(tuner_buf) }; |
750 | int tuner_frequency = 0; | 751 | int tuner_frequency = 0; |
751 | u8 band, cp, filter; | 752 | u8 band, cp, filter; |
752 | 753 | ||
@@ -838,8 +839,12 @@ static struct tda1004x_config philips_tdm1316l_config = { | |||
838 | .demod_address = 0x8, | 839 | .demod_address = 0x8, |
839 | .invert = 0, | 840 | .invert = 0, |
840 | .invert_oclk = 0, | 841 | .invert_oclk = 0, |
842 | .xtal_freq = TDA10046_XTAL_4M, | ||
843 | .agc_config = TDA10046_AGC_DEFAULT, | ||
844 | .if_freq = TDA10046_FREQ_3617, | ||
841 | .pll_init = philips_tdm1316l_pll_init, | 845 | .pll_init = philips_tdm1316l_pll_init, |
842 | .pll_set = philips_tdm1316l_pll_set, | 846 | .pll_set = philips_tdm1316l_pll_set, |
847 | .pll_sleep = NULL, | ||
843 | .request_firmware = philips_tdm1316l_request_firmware, | 848 | .request_firmware = philips_tdm1316l_request_firmware, |
844 | }; | 849 | }; |
845 | 850 | ||
@@ -865,12 +870,22 @@ static void frontend_init(struct budget_ci *budget_ci) | |||
865 | break; | 870 | break; |
866 | 871 | ||
867 | case 0x1011: // Hauppauge/TT Nova-T budget (tda10045/Philips tdm1316l(tda6651tt) + TDA9889) | 872 | case 0x1011: // Hauppauge/TT Nova-T budget (tda10045/Philips tdm1316l(tda6651tt) + TDA9889) |
873 | budget_ci->tuner_pll_address = 0x63; | ||
868 | budget_ci->budget.dvb_frontend = | 874 | budget_ci->budget.dvb_frontend = |
869 | tda10045_attach(&philips_tdm1316l_config, &budget_ci->budget.i2c_adap); | 875 | tda10045_attach(&philips_tdm1316l_config, &budget_ci->budget.i2c_adap); |
870 | if (budget_ci->budget.dvb_frontend) { | 876 | if (budget_ci->budget.dvb_frontend) { |
871 | break; | 877 | break; |
872 | } | 878 | } |
873 | break; | 879 | break; |
880 | |||
881 | case 0x1012: // Hauppauge/TT Nova-T CI budget (tda10045/Philips tdm1316l(tda6651tt) + TDA9889) | ||
882 | budget_ci->tuner_pll_address = 0x60; | ||
883 | budget_ci->budget.dvb_frontend = | ||
884 | tda10046_attach(&philips_tdm1316l_config, &budget_ci->budget.i2c_adap); | ||
885 | if (budget_ci->budget.dvb_frontend) { | ||
886 | break; | ||
887 | } | ||
888 | break; | ||
874 | } | 889 | } |
875 | 890 | ||
876 | if (budget_ci->budget.dvb_frontend == NULL) { | 891 | if (budget_ci->budget.dvb_frontend == NULL) { |
@@ -950,11 +965,13 @@ static struct saa7146_extension budget_extension; | |||
950 | 965 | ||
951 | MAKE_BUDGET_INFO(ttbci, "TT-Budget/WinTV-NOVA-CI PCI", BUDGET_TT_HW_DISEQC); | 966 | MAKE_BUDGET_INFO(ttbci, "TT-Budget/WinTV-NOVA-CI PCI", BUDGET_TT_HW_DISEQC); |
952 | MAKE_BUDGET_INFO(ttbt2, "TT-Budget/WinTV-NOVA-T PCI", BUDGET_TT); | 967 | MAKE_BUDGET_INFO(ttbt2, "TT-Budget/WinTV-NOVA-T PCI", BUDGET_TT); |
968 | MAKE_BUDGET_INFO(ttbtci, "TT-Budget-T-CI PCI", BUDGET_TT); | ||
953 | 969 | ||
954 | static struct pci_device_id pci_tbl[] = { | 970 | static struct pci_device_id pci_tbl[] = { |
955 | MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c), | 971 | MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c), |
956 | MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100f), | 972 | MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100f), |
957 | MAKE_EXTENSION_PCI(ttbt2, 0x13c2, 0x1011), | 973 | MAKE_EXTENSION_PCI(ttbt2, 0x13c2, 0x1011), |
974 | MAKE_EXTENSION_PCI(ttbtci, 0x13c2, 0x1012), | ||
958 | { | 975 | { |
959 | .vendor = 0, | 976 | .vendor = 0, |
960 | } | 977 | } |