Commit ad10c930 authored by Eric Thomas's avatar Eric Thomas Committed by Mauro Carvalho Chehab
Browse files

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: default avatarEric Thomas <ethomas@claranet.fr>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 2ab65299
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -51,3 +51,4 @@
 50 -> NPG Tech Real TV FM Top 10                          [14f1:0842]
 51 -> WinFast DTV2000 H                                   [107d:665e]
 52 -> Geniatech DVB-S                                     [14f1:0084]
 53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T  [0070:1404]
+28 −0
Original line number Diff line number Diff line
@@ -1209,6 +1209,28 @@ struct cx88_board cx88_boards[] = {
		}},
		.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);

@@ -1458,6 +1480,10 @@ struct cx88_subid cx88_subids[] = {
		.subvendor = 0x14f1,
		.subdevice = 0x0084,
		.card      = CX88_BOARD_GENIATECH_DVBS,
	},{
		.subvendor = 0x0070,
		.subdevice = 0x1404,
		.card      = CX88_BOARD_HAUPPAUGE_HVR3000,
	},
};
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 */
	switch (tv.model)
	{
	case 14569: /* WinTV-HVR3000 (OEM, no IR, no back panel video) */
	case 28552: /* WinTV-PVR 'Roslyn' (No IR) */
	case 34519: /* WinTV-PCI-FM */
	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_HVR1100:
	case CX88_BOARD_HAUPPAUGE_HVR1100LP:
	case CX88_BOARD_HAUPPAUGE_HVR3000:
		if (0 == core->i2c_rc)
			hauppauge_eeprom(core,eeprom);
		break;
+1 −0
Original line number Diff line number Diff line
@@ -197,6 +197,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_NPGTECH_REALTV_TOP10FM  50
#define CX88_BOARD_WINFAST_DTV2000H        51
#define CX88_BOARD_GENIATECH_DVBS          52
#define CX88_BOARD_HAUPPAUGE_HVR3000       53

enum cx88_itype {
	CX88_VMUX_COMPOSITE1 = 1,