Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 92407
b: refs/heads/master
c: b3fb91d
h: refs/heads/master
i:
  92405: eaa1290
  92403: e3b3b47
  92399: 0464461
v: v3
  • Loading branch information
Chris Pascoe authored and Mauro Carvalho Chehab committed Apr 24, 2008
1 parent beeed83 commit 1b54202
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9507901ef329b2dd3417372c7c9b2abcfd5c1885
refs/heads/master: b3fb91d20ca111316854a166ff88b0c8c0f2388b
1 change: 1 addition & 0 deletions trunk/Documentation/video4linux/CARDLIST.cx88
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,4 @@
61 -> Winfast TV2000 XP Global [107d:6f18]
62 -> PowerColor Real Angel 330 [14f1:ea3d]
63 -> Geniatech X8000-MT DVBT [14f1:8852]
64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30]
65 changes: 60 additions & 5 deletions trunk/drivers/media/video/cx88/cx88-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -1543,7 +1543,24 @@ static const struct cx88_board cx88_boards[] = {
.gpio3 = 0x00000000,
},
.mpeg = CX88_MPEG_DVB,
}
},
[CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO] = {
.name = "DViCO FusionHDTV DVB-T PRO",
.tuner_type = TUNER_ABSENT, /* XXX: Has XC3028 */
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.input = { {
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
.gpio0 = 0x000067df,
}, {
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
.gpio0 = 0x000067df,
} },
.mpeg = CX88_MPEG_DVB,
},
};

/* ------------------------------------------------------------------ */
Expand Down Expand Up @@ -1748,7 +1765,11 @@ static const struct cx88_subid cx88_subids[] = {
.subdevice = 0xdb11,
.card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS,
/* Re-branded DViCO: UltraView DVB-T Plus */
},{
}, {
.subvendor = 0x18ac,
.subdevice = 0xdb30,
.card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO,
}, {
.subvendor = 0x17de,
.subdevice = 0x0840,
.card = CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT,
Expand Down Expand Up @@ -2009,6 +2030,28 @@ static void gdi_eeprom(struct cx88_core *core, u8 *eeprom_data)
CX88_RADIO : 0;
}

/* ------------------------------------------------------------------- */
/* some Divco specific stuff */
static int cx88_dvico_xc2028_callback(void *ptr, int command, int arg)
{
struct cx88_core *core = ptr;

switch (command) {
case XC2028_TUNER_RESET:
cx_set(MO_GP0_IO, 0x0200);
cx_clear(MO_GP0_IO, 0x02);
mdelay(100);
cx_set(MO_GP0_IO, 0x02);
mdelay(100);
break;
default:
return -EINVAL;
}

return 0;
}


/* ----------------------------------------------------------------------- */
/* some Geniatech specific stuff */

Expand Down Expand Up @@ -2098,6 +2141,8 @@ static int cx88_xc2028_tuner_callback(void *priv, int command, int arg)
case CX88_BOARD_POWERCOLOR_REAL_ANGEL:
case CX88_BOARD_GENIATECH_X8000_MT:
return cx88_xc3028_geniatech_tuner_callback(priv, command, arg);
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
return cx88_dvico_xc2028_callback(priv, command, arg);
}

switch (command) {
Expand Down Expand Up @@ -2267,6 +2312,7 @@ static void cx88_card_setup(struct cx88_core *core)
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1:
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS:
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID:
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
/* GPIO0:0 is hooked to mt352 reset pin */
cx_set(MO_GP0_IO, 0x00000101);
cx_clear(MO_GP0_IO, 0x00000001);
Expand Down Expand Up @@ -2338,9 +2384,18 @@ static void cx88_card_setup(struct cx88_core *core)

ctl.fname = XC2028_DEFAULT_FIRMWARE;
ctl.max_len = 64;
/* FIXME: Those should be device-dependent */
ctl.demod = XC3028_FE_OREN538;
ctl.mts = 1;

switch (core->boardnr) {
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
ctl.scode_table = XC3028_FE_ZARLINK456;
break;
case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
ctl.demod = XC3028_FE_OREN538;
break;
default:
ctl.demod = XC3028_FE_OREN538;
ctl.mts = 1;
}

xc2028_cfg.tuner = TUNER_XC2028;
xc2028_cfg.priv = &ctl;
Expand Down
23 changes: 23 additions & 0 deletions trunk/drivers/media/video/cx88/cx88-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,19 @@ static struct zl10353_config dvico_fusionhdtv_hybrid = {
.no_tuner = 1,
};

static struct zl10353_config dvico_fusionhdtv_xc3028 = {
.demod_address = 0x0f,
.if2 = 45600,
.no_tuner = 1,
};

static struct mt352_config dvico_fusionhdtv_mt352_xc3028 = {
.demod_address = 0x0f,
.if2 = 4560,
.no_tuner = 1,
.demod_init = dvico_fusionhdtv_demod_init,
};

static struct zl10353_config dvico_fusionhdtv_plus_v1_1 = {
.demod_address = 0x0f,
};
Expand Down Expand Up @@ -567,6 +580,16 @@ static int dvb_register(struct cx8802_dev *dev)
DVB_PLL_THOMSON_FE6600);
}
break;
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
dev->dvb.frontend = dvb_attach(zl10353_attach,
&dvico_fusionhdtv_xc3028,
&dev->core->i2c_adap);
if (dev->dvb.frontend == NULL)
dev->dvb.frontend = dvb_attach(mt352_attach,
&dvico_fusionhdtv_mt352_xc3028,
&dev->core->i2c_adap);
attach_xc3028 = 1;
break;
case CX88_BOARD_PCHDTV_HD3000:
dev->dvb.frontend = dvb_attach(or51132_attach, &pchdtv_hd3000,
&dev->core->i2c_adap);
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/media/video/cx88/cx88.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_WINFAST_TV2000_XP_GLOBAL 61
#define CX88_BOARD_POWERCOLOR_REAL_ANGEL 62
#define CX88_BOARD_GENIATECH_X8000_MT 63
#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO 64

enum cx88_itype {
CX88_VMUX_COMPOSITE1 = 1,
Expand Down

0 comments on commit 1b54202

Please sign in to comment.