Commit 70101a27 authored by Stephan Wienczny's avatar Stephan Wienczny Committed by Mauro Carvalho Chehab

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: default avatarStephan Wienczny <stephan@wienczny.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent a27e4fd3
...@@ -77,3 +77,4 @@ ...@@ -77,3 +77,4 @@
76 -> SATTRADE ST4200 DVB-S/S2 [b200:4200] 76 -> SATTRADE ST4200 DVB-S/S2 [b200:4200]
77 -> TBS 8910 DVB-S [8910:8888] 77 -> TBS 8910 DVB-S [8910:8888]
78 -> Prof 6200 DVB-S [b022:3022] 78 -> Prof 6200 DVB-S [b022:3022]
79 -> Terratec Cinergy HT PCI MKII [153b:1177]
...@@ -1934,6 +1934,39 @@ static const struct cx88_board cx88_boards[] = { ...@@ -1934,6 +1934,39 @@ static const struct cx88_board cx88_boards[] = {
} }, } },
.mpeg = CX88_MPEG_DVB, .mpeg = CX88_MPEG_DVB,
}, },
[CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII] = {
.name = "Terratec Cinergy HT PCI MKII",
.tuner_type = TUNER_XC2028,
.tuner_addr = 0x61,
.radio_type = TUNER_XC2028,
.radio_addr = 0x61,
.input = { {
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
.gpio0 = 0x004ff,
.gpio1 = 0x010ff,
.gpio2 = 0x00001,
}, {
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
.gpio0 = 0x004fb,
.gpio1 = 0x010ef,
.audioroute = 1,
}, {
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
.gpio0 = 0x004fb,
.gpio1 = 0x010ef,
.audioroute = 1,
} },
.radio = {
.type = CX88_RADIO,
.gpio0 = 0x004ff,
.gpio1 = 0x010ff,
.gpio2 = 0x0ff,
},
.mpeg = CX88_MPEG_DVB,
},
}; };
/* ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ */
...@@ -2343,6 +2376,10 @@ static const struct cx88_subid cx88_subids[] = { ...@@ -2343,6 +2376,10 @@ static const struct cx88_subid cx88_subids[] = {
.subvendor = 0xb200, .subvendor = 0xb200,
.subdevice = 0x4200, .subdevice = 0x4200,
.card = CX88_BOARD_SATTRADE_ST4200, .card = CX88_BOARD_SATTRADE_ST4200,
}, {
.subvendor = 0x153b,
.subdevice = 0x1177,
.card = CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII,
}, },
}; };
...@@ -2819,6 +2856,7 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl) ...@@ -2819,6 +2856,7 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl)
*/ */
break; break;
case CX88_BOARD_PINNACLE_HYBRID_PCTV: case CX88_BOARD_PINNACLE_HYBRID_PCTV:
case CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII:
ctl->demod = XC3028_FE_ZARLINK456; ctl->demod = XC3028_FE_ZARLINK456;
ctl->mts = 1; ctl->mts = 1;
break; break;
......
...@@ -241,6 +241,12 @@ static struct mt352_config dvico_fusionhdtv_dual = { ...@@ -241,6 +241,12 @@ static struct mt352_config dvico_fusionhdtv_dual = {
.demod_init = dvico_dual_demod_init, .demod_init = dvico_dual_demod_init,
}; };
static struct zl10353_config cx88_terratec_cinergy_ht_pci_mkii_config = {
.demod_address = (0x1e >> 1),
.no_tuner = 1,
.if2 = 45600,
};
#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) #if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe) static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)
{ {
...@@ -1131,6 +1137,16 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -1131,6 +1137,16 @@ static int dvb_register(struct cx8802_dev *dev)
if (fe0->dvb.frontend != NULL) if (fe0->dvb.frontend != NULL)
fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage;
break; break;
case CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII:
fe0->dvb.frontend = dvb_attach(zl10353_attach,
&cx88_terratec_cinergy_ht_pci_mkii_config,
&core->i2c_adap);
if (fe0->dvb.frontend) {
fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL;
if (attach_xc3028(0x61, dev) < 0)
goto frontend_detach;
}
break;
default: default:
printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n",
core->name); core->name);
......
...@@ -231,6 +231,7 @@ extern struct sram_channel cx88_sram_channels[]; ...@@ -231,6 +231,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_SATTRADE_ST4200 76 #define CX88_BOARD_SATTRADE_ST4200 76
#define CX88_BOARD_TBS_8910 77 #define CX88_BOARD_TBS_8910 77
#define CX88_BOARD_PROF_6200 78 #define CX88_BOARD_PROF_6200 78
#define CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII 79
enum cx88_itype { enum cx88_itype {
CX88_VMUX_COMPOSITE1 = 1, CX88_VMUX_COMPOSITE1 = 1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment