aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/ttpci
diff options
context:
space:
mode:
authorAndrew de Quincey <adq_dvb@lidskialf.net>2005-07-07 20:57:54 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-07 21:23:57 -0400
commitdd2bbb179326d23577ff8201c4f20e0db3e87f7b (patch)
tree71a987846fdd0370fc3f037c4f4c56e839c1c308 /drivers/media/dvb/ttpci
parent96bf2f2b549aab918f4225841df54c3d58896822 (diff)
[PATCH] dvb: ttpci: support for new TT DVB-T-CI
Support for new TT DVB-T-CI, thanks to Andre Weidemann Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/media/dvb/ttpci')
-rw-r--r--drivers/media/dvb/ttpci/budget-ci.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c
index 075eb40f5c16..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
@@ -869,12 +870,22 @@ static void frontend_init(struct budget_ci *budget_ci)
869 break; 870 break;
870 871
871 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;
872 budget_ci->budget.dvb_frontend = 874 budget_ci->budget.dvb_frontend =
873 tda10045_attach(&philips_tdm1316l_config, &budget_ci->budget.i2c_adap); 875 tda10045_attach(&philips_tdm1316l_config, &budget_ci->budget.i2c_adap);
874 if (budget_ci->budget.dvb_frontend) { 876 if (budget_ci->budget.dvb_frontend) {
875 break; 877 break;
876 } 878 }
877 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;
878 } 889 }
879 890
880 if (budget_ci->budget.dvb_frontend == NULL) { 891 if (budget_ci->budget.dvb_frontend == NULL) {
@@ -954,11 +965,13 @@ static struct saa7146_extension budget_extension;
954 965
955MAKE_BUDGET_INFO(ttbci, "TT-Budget/WinTV-NOVA-CI PCI", BUDGET_TT_HW_DISEQC); 966MAKE_BUDGET_INFO(ttbci, "TT-Budget/WinTV-NOVA-CI PCI", BUDGET_TT_HW_DISEQC);
956MAKE_BUDGET_INFO(ttbt2, "TT-Budget/WinTV-NOVA-T PCI", BUDGET_TT); 967MAKE_BUDGET_INFO(ttbt2, "TT-Budget/WinTV-NOVA-T PCI", BUDGET_TT);
968MAKE_BUDGET_INFO(ttbtci, "TT-Budget-T-CI PCI", BUDGET_TT);
957 969
958static struct pci_device_id pci_tbl[] = { 970static struct pci_device_id pci_tbl[] = {
959 MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c), 971 MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c),
960 MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100f), 972 MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100f),
961 MAKE_EXTENSION_PCI(ttbt2, 0x13c2, 0x1011), 973 MAKE_EXTENSION_PCI(ttbt2, 0x13c2, 0x1011),
974 MAKE_EXTENSION_PCI(ttbtci, 0x13c2, 0x1012),
962 { 975 {
963 .vendor = 0, 976 .vendor = 0,
964 } 977 }