V4L/DVB (9066): Pinnacle Hybrid PCTV Pro (pctv310c) DVB-T support
This patch against latest mercurial makes DVB-T working on Pinnacle Hybrid PCTV Pro (pctv310c). In cx88-dvb.c, a specific zl10353_config is created with the if2 inferred from the old comment in the currently used config. It is then used for attach, and i2c_gate_ctrl is set to NULL. The entry in cx88-cards.c is modified with GPIO gathered from windows with regspy, and DVB enabled. The frontend is set to XC3028_FE_ZARLINK456 to match the zl10353_config. It is working great with the freeview channels I can receive. Signed-off-by: Stéphane Voltz <stef.dev@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
3de2ed1270
commit
3f6014fc77
|
@ -1449,15 +1449,26 @@ static const struct cx88_board cx88_boards[] = {
|
|||
.name = "Pinnacle Hybrid PCTV",
|
||||
.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,
|
||||
|
@ -1465,6 +1476,7 @@ static const struct cx88_board cx88_boards[] = {
|
|||
.gpio1 = 0x010ff,
|
||||
.gpio2 = 0x0ff,
|
||||
},
|
||||
.mpeg = CX88_MPEG_DVB,
|
||||
},
|
||||
[CX88_BOARD_WINFAST_TV2000_XP_GLOBAL] = {
|
||||
.name = "Winfast TV2000 XP Global",
|
||||
|
@ -2671,6 +2683,10 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl)
|
|||
* Those boards uses non-MTS firmware
|
||||
*/
|
||||
break;
|
||||
case CX88_BOARD_PINNACLE_HYBRID_PCTV:
|
||||
ctl->demod = XC3028_FE_ZARLINK456;
|
||||
ctl->mts = 1;
|
||||
break;
|
||||
default:
|
||||
ctl->demod = XC3028_FE_OREN538;
|
||||
ctl->mts = 1;
|
||||
|
|
|
@ -454,6 +454,12 @@ static struct xc5000_config pinnacle_pctv_hd_800i_tuner_config = {
|
|||
.if_khz = 5380,
|
||||
};
|
||||
|
||||
static struct zl10353_config cx88_pinnacle_hybrid_pctv = {
|
||||
.demod_address = (0x1e >> 1),
|
||||
.no_tuner = 1,
|
||||
.if2 = 45600,
|
||||
};
|
||||
|
||||
static struct zl10353_config cx88_geniatech_x8000_mt = {
|
||||
.demod_address = (0x1e >> 1),
|
||||
.no_tuner = 1,
|
||||
|
@ -890,10 +896,13 @@ static int dvb_register(struct cx8802_dev *dev)
|
|||
break;
|
||||
case CX88_BOARD_PINNACLE_HYBRID_PCTV:
|
||||
dev->dvb.frontend = dvb_attach(zl10353_attach,
|
||||
&cx88_geniatech_x8000_mt,
|
||||
&cx88_pinnacle_hybrid_pctv,
|
||||
&core->i2c_adap);
|
||||
if (attach_xc3028(0x61, dev) < 0)
|
||||
goto frontend_detach;
|
||||
if (dev->dvb.frontend) {
|
||||
dev->dvb.frontend->ops.i2c_gate_ctrl = NULL;
|
||||
if (attach_xc3028(0x61, dev) < 0)
|
||||
goto frontend_detach;
|
||||
}
|
||||
break;
|
||||
case CX88_BOARD_GENIATECH_X8000_MT:
|
||||
dev->ts_gen_cntrl = 0x00;
|
||||
|
|
Loading…
Reference in New Issue