V4L/DVB (4359): Cx88: add initial support for Hauppauge HVR3000 trimode card
add initial support for Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T only analog is working for now Signed-off-by: Eric Thomas <ethomas@claranet.fr> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
2ab6529936
commit
ad10c930e8
|
@ -51,3 +51,4 @@
|
||||||
50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
|
50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
|
||||||
51 -> WinFast DTV2000 H [107d:665e]
|
51 -> WinFast DTV2000 H [107d:665e]
|
||||||
52 -> Geniatech DVB-S [14f1:0084]
|
52 -> Geniatech DVB-S [14f1:0084]
|
||||||
|
53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T [0070:1404]
|
||||||
|
|
|
@ -1209,6 +1209,28 @@ struct cx88_board cx88_boards[] = {
|
||||||
}},
|
}},
|
||||||
.dvb = 1,
|
.dvb = 1,
|
||||||
},
|
},
|
||||||
|
[CX88_BOARD_HAUPPAUGE_HVR3000] = {
|
||||||
|
/* FIXME: Add dvb & radio support */
|
||||||
|
.name = "Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T",
|
||||||
|
.tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
|
||||||
|
.radio_type = UNSET,
|
||||||
|
.tuner_addr = ADDR_UNSET,
|
||||||
|
.radio_addr = ADDR_UNSET,
|
||||||
|
.tda9887_conf = TDA9887_PRESENT,
|
||||||
|
.input = {{
|
||||||
|
.type = CX88_VMUX_TELEVISION,
|
||||||
|
.vmux = 0,
|
||||||
|
.gpio0 = 0x84bf,
|
||||||
|
},{
|
||||||
|
.type = CX88_VMUX_COMPOSITE1,
|
||||||
|
.vmux = 1,
|
||||||
|
.gpio0 = 0x84bf,
|
||||||
|
},{
|
||||||
|
.type = CX88_VMUX_SVIDEO,
|
||||||
|
.vmux = 2,
|
||||||
|
.gpio0 = 0x84bf,
|
||||||
|
}},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
|
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
|
||||||
|
|
||||||
|
@ -1458,6 +1480,10 @@ struct cx88_subid cx88_subids[] = {
|
||||||
.subvendor = 0x14f1,
|
.subvendor = 0x14f1,
|
||||||
.subdevice = 0x0084,
|
.subdevice = 0x0084,
|
||||||
.card = CX88_BOARD_GENIATECH_DVBS,
|
.card = CX88_BOARD_GENIATECH_DVBS,
|
||||||
|
},{
|
||||||
|
.subvendor = 0x0070,
|
||||||
|
.subdevice = 0x1404,
|
||||||
|
.card = CX88_BOARD_HAUPPAUGE_HVR3000,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
|
const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
|
||||||
|
@ -1501,6 +1527,7 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
|
||||||
/* Make sure we support the board model */
|
/* Make sure we support the board model */
|
||||||
switch (tv.model)
|
switch (tv.model)
|
||||||
{
|
{
|
||||||
|
case 14569: /* WinTV-HVR3000 (OEM, no IR, no back panel video) */
|
||||||
case 28552: /* WinTV-PVR 'Roslyn' (No IR) */
|
case 28552: /* WinTV-PVR 'Roslyn' (No IR) */
|
||||||
case 34519: /* WinTV-PCI-FM */
|
case 34519: /* WinTV-PCI-FM */
|
||||||
case 90002: /* Nova-T-PCI (9002) */
|
case 90002: /* Nova-T-PCI (9002) */
|
||||||
|
@ -1666,6 +1693,7 @@ void cx88_card_setup(struct cx88_core *core)
|
||||||
case CX88_BOARD_HAUPPAUGE_DVB_T1:
|
case CX88_BOARD_HAUPPAUGE_DVB_T1:
|
||||||
case CX88_BOARD_HAUPPAUGE_HVR1100:
|
case CX88_BOARD_HAUPPAUGE_HVR1100:
|
||||||
case CX88_BOARD_HAUPPAUGE_HVR1100LP:
|
case CX88_BOARD_HAUPPAUGE_HVR1100LP:
|
||||||
|
case CX88_BOARD_HAUPPAUGE_HVR3000:
|
||||||
if (0 == core->i2c_rc)
|
if (0 == core->i2c_rc)
|
||||||
hauppauge_eeprom(core,eeprom);
|
hauppauge_eeprom(core,eeprom);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -197,6 +197,7 @@ extern struct sram_channel cx88_sram_channels[];
|
||||||
#define CX88_BOARD_NPGTECH_REALTV_TOP10FM 50
|
#define CX88_BOARD_NPGTECH_REALTV_TOP10FM 50
|
||||||
#define CX88_BOARD_WINFAST_DTV2000H 51
|
#define CX88_BOARD_WINFAST_DTV2000H 51
|
||||||
#define CX88_BOARD_GENIATECH_DVBS 52
|
#define CX88_BOARD_GENIATECH_DVBS 52
|
||||||
|
#define CX88_BOARD_HAUPPAUGE_HVR3000 53
|
||||||
|
|
||||||
enum cx88_itype {
|
enum cx88_itype {
|
||||||
CX88_VMUX_COMPOSITE1 = 1,
|
CX88_VMUX_COMPOSITE1 = 1,
|
||||||
|
|
Loading…
Reference in a new issue