diff options
author | Stephan Wienczny <Stephan@wienczny.de> | 2009-03-10 18:08:06 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:43:18 -0400 |
commit | 70101a2785598f1a743c1e0fb65264c55bf5a29f (patch) | |
tree | 043fa173cb83eda02b3fc09f1e76b9c0d626cc94 | |
parent | a27e4fd321cdfe5b333efb41589c1008c705e312 (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.cx88 | 1 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 38 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 16 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88.h | 1 |
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 | ||
244 | static 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)) |
245 | static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe) | 251 | static 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 | ||
235 | enum cx88_itype { | 236 | enum cx88_itype { |
236 | CX88_VMUX_COMPOSITE1 = 1, | 237 | CX88_VMUX_COMPOSITE1 = 1, |