aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Wienczny <Stephan@wienczny.de>2009-03-10 18:08:06 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-30 11:43:18 -0400
commit70101a2785598f1a743c1e0fb65264c55bf5a29f (patch)
tree043fa173cb83eda02b3fc09f1e76b9c0d626cc94
parenta27e4fd321cdfe5b333efb41589c1008c705e312 (diff)
V4L/DVB (10949): Add support for Terratec Cinergy HT PCI MKII
This patch adds support for Terratec Cinergy HT PCI MKII with card id 79. Its more or less a copy of Pinnacle Hybrid PCTV. Thanks to k1ngf1sher on forum.ubuntuusers.de for the idea to copy that card. Signed-off-by: Stephan Wienczny <stephan@wienczny.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/video4linux/CARDLIST.cx881
-rw-r--r--drivers/media/video/cx88/cx88-cards.c38
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c16
-rw-r--r--drivers/media/video/cx88/cx88.h1
4 files changed, 56 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 0d08f1edcf6d..71e9db0b26f7 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -77,3 +77,4 @@
77 76 -> SATTRADE ST4200 DVB-S/S2 [b200:4200] 77 76 -> SATTRADE ST4200 DVB-S/S2 [b200:4200]
78 77 -> TBS 8910 DVB-S [8910:8888] 78 77 -> TBS 8910 DVB-S [8910:8888]
79 78 -> Prof 6200 DVB-S [b022:3022] 79 78 -> Prof 6200 DVB-S [b022:3022]
80 79 -> Terratec Cinergy HT PCI MKII [153b:1177]
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 733ede34f93a..1d7e3a562995 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1934,6 +1934,39 @@ static const struct cx88_board cx88_boards[] = {
1934 } }, 1934 } },
1935 .mpeg = CX88_MPEG_DVB, 1935 .mpeg = CX88_MPEG_DVB,
1936 }, 1936 },
1937 [CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII] = {
1938 .name = "Terratec Cinergy HT PCI MKII",
1939 .tuner_type = TUNER_XC2028,
1940 .tuner_addr = 0x61,
1941 .radio_type = TUNER_XC2028,
1942 .radio_addr = 0x61,
1943 .input = { {
1944 .type = CX88_VMUX_TELEVISION,
1945 .vmux = 0,
1946 .gpio0 = 0x004ff,
1947 .gpio1 = 0x010ff,
1948 .gpio2 = 0x00001,
1949 }, {
1950 .type = CX88_VMUX_COMPOSITE1,
1951 .vmux = 1,
1952 .gpio0 = 0x004fb,
1953 .gpio1 = 0x010ef,
1954 .audioroute = 1,
1955 }, {
1956 .type = CX88_VMUX_SVIDEO,
1957 .vmux = 2,
1958 .gpio0 = 0x004fb,
1959 .gpio1 = 0x010ef,
1960 .audioroute = 1,
1961 } },
1962 .radio = {
1963 .type = CX88_RADIO,
1964 .gpio0 = 0x004ff,
1965 .gpio1 = 0x010ff,
1966 .gpio2 = 0x0ff,
1967 },
1968 .mpeg = CX88_MPEG_DVB,
1969 },
1937}; 1970};
1938 1971
1939/* ------------------------------------------------------------------ */ 1972/* ------------------------------------------------------------------ */
@@ -2343,6 +2376,10 @@ static const struct cx88_subid cx88_subids[] = {
2343 .subvendor = 0xb200, 2376 .subvendor = 0xb200,
2344 .subdevice = 0x4200, 2377 .subdevice = 0x4200,
2345 .card = CX88_BOARD_SATTRADE_ST4200, 2378 .card = CX88_BOARD_SATTRADE_ST4200,
2379 }, {
2380 .subvendor = 0x153b,
2381 .subdevice = 0x1177,
2382 .card = CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII,
2346 }, 2383 },
2347}; 2384};
2348 2385
@@ -2819,6 +2856,7 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl)
2819 */ 2856 */
2820 break; 2857 break;
2821 case CX88_BOARD_PINNACLE_HYBRID_PCTV: 2858 case CX88_BOARD_PINNACLE_HYBRID_PCTV:
2859 case CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII:
2822 ctl->demod = XC3028_FE_ZARLINK456; 2860 ctl->demod = XC3028_FE_ZARLINK456;
2823 ctl->mts = 1; 2861 ctl->mts = 1;
2824 break; 2862 break;
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index aef5297534af..08346fa05cd7 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -241,6 +241,12 @@ static struct mt352_config dvico_fusionhdtv_dual = {
241 .demod_init = dvico_dual_demod_init, 241 .demod_init = dvico_dual_demod_init,
242}; 242};
243 243
244static struct zl10353_config cx88_terratec_cinergy_ht_pci_mkii_config = {
245 .demod_address = (0x1e >> 1),
246 .no_tuner = 1,
247 .if2 = 45600,
248};
249
244#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) 250#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
245static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe) 251static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)
246{ 252{
@@ -1131,6 +1137,16 @@ static int dvb_register(struct cx8802_dev *dev)
1131 if (fe0->dvb.frontend != NULL) 1137 if (fe0->dvb.frontend != NULL)
1132 fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; 1138 fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage;
1133 break; 1139 break;
1140 case CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII:
1141 fe0->dvb.frontend = dvb_attach(zl10353_attach,
1142 &cx88_terratec_cinergy_ht_pci_mkii_config,
1143 &core->i2c_adap);
1144 if (fe0->dvb.frontend) {
1145 fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL;
1146 if (attach_xc3028(0x61, dev) < 0)
1147 goto frontend_detach;
1148 }
1149 break;
1134 default: 1150 default:
1135 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", 1151 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n",
1136 core->name); 1152 core->name);
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 3542061c7329..303d8d20fc91 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -231,6 +231,7 @@ extern struct sram_channel cx88_sram_channels[];
231#define CX88_BOARD_SATTRADE_ST4200 76 231#define CX88_BOARD_SATTRADE_ST4200 76
232#define CX88_BOARD_TBS_8910 77 232#define CX88_BOARD_TBS_8910 77
233#define CX88_BOARD_PROF_6200 78 233#define CX88_BOARD_PROF_6200 78
234#define CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII 79
234 235
235enum cx88_itype { 236enum cx88_itype {
236 CX88_VMUX_COMPOSITE1 = 1, 237 CX88_VMUX_COMPOSITE1 = 1,