[PATCH] Add support for WinFast DTV2000H rev. J

Vlastimil Labsky <[email protected]>
Newsgroups gmane.linux.kernel,gmane.comp.video.video4linux
Message-ID <[email protected]>
I updated and simplyfied patch from Zbynek Hrabovsky for recent
kernel. It enables autodetection of card, sound in analog TV , sound
in FM radio and switching between antenna and cable RF input. Radio
tuner still doesn't work, I don't even know how it works. Some guys
wrote me that FM radio works with TV tuner used instead of radio part
(symlink video0 -> radio0).

Signed-off-by: Vlastimil Labsky <[email protected]>

--- a/drivers/media/video/cx88/cx88-cards.c	2009-06-10 05:05:27.000000000 +0200
+++ b/drivers/media/video/cx88/cx88-cards.c	2002-01-02 22:35:26.000000000 +0100
@@ -1283,6 +1283,51 @@ static const struct cx88_board cx88_boar
 		},
 		.mpeg           = CX88_MPEG_DVB,
 	},
+	[CX88_BOARD_WINFAST_DTV2000H_J] = {
+		.name           = "WinFast DTV2000 H rev. J",
+		.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  = 0x00017300,
+			.gpio1  = 0x00008207,
+			.gpio2	= 0x00000000,
+			.gpio3  = 0x02000000,
+		},{
+			.type   = CX88_VMUX_TELEVISION,
+			.vmux   = 0,
+			.gpio0  = 0x00018300,
+			.gpio1  = 0x0000f207,
+			.gpio2	= 0x00017304,
+			.gpio3  = 0x02000000,
+		},{
+			.type   = CX88_VMUX_COMPOSITE1,
+			.vmux   = 1,
+			.gpio0  = 0x00018301,
+			.gpio1  = 0x0000f207,
+			.gpio2	= 0x00017304,
+			.gpio3  = 0x02000000,
+		},{
+			.type   = CX88_VMUX_SVIDEO,
+			.vmux   = 2,
+			.gpio0  = 0x00018301,
+			.gpio1  = 0x0000f207,
+			.gpio2	= 0x00017304,
+			.gpio3  = 0x02000000,
+		}},
+		.radio = {
+			 .type  = CX88_RADIO,
+			 .gpio0 = 0x00015702,
+			 .gpio1 = 0x0000f207,
+			 .gpio2 = 0x00015702,
+			 .gpio3 = 0x02000000,
+		},
+		.mpeg           = CX88_MPEG_DVB,
+	},
 	[CX88_BOARD_GENIATECH_DVBS] = {
 		.name          = "Geniatech DVB-S",
 		.tuner_type    = TUNER_ABSENT,
@@ -2222,6 +2267,10 @@ static const struct cx88_subid cx88_subi
 		.subdevice = 0x665e,
 		.card      = CX88_BOARD_WINFAST_DTV2000H,
 	},{
+		.subvendor = 0x107d,
+		.subdevice = 0x6f2b,
+		.card      = CX88_BOARD_WINFAST_DTV2000H_J,
+	},{
 		.subvendor = 0x18ac,
 		.subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
 		.card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
--- a/drivers/media/video/cx88/cx88-dvb.c	2009-06-10 05:05:27.000000000 +0200
+++ b/drivers/media/video/cx88/cx88-dvb.c	2002-01-02 22:36:10.000000000 +0100
@@ -695,6 +695,7 @@ static int dvb_register(struct cx8802_de
 		}
 		break;
 	case CX88_BOARD_WINFAST_DTV2000H:
+	case CX88_BOARD_WINFAST_DTV2000H_J:
 	case CX88_BOARD_HAUPPAUGE_HVR1100:
 	case CX88_BOARD_HAUPPAUGE_HVR1100LP:
 	case CX88_BOARD_HAUPPAUGE_HVR1300:
--- a/drivers/media/video/cx88/cx88-input.c	2009-06-10 05:05:27.000000000 +0200
+++ b/drivers/media/video/cx88/cx88-input.c	2002-01-02 22:36:57.000000000 +0100
@@ -222,6 +222,7 @@ int cx88_ir_init(struct cx88_core *core,
 		ir->sampling = 1;
 		break;
 	case CX88_BOARD_WINFAST_DTV2000H:
+	case CX88_BOARD_WINFAST_DTV2000H_J:
 		ir_codes = ir_codes_winfast;
 		ir->gpio_addr = MO_GP0_IO;
 		ir->mask_keycode = 0x8f8;
--- a/drivers/media/video/cx88/cx88.h	2009-06-10 05:05:27.000000000 +0200
+++ b/drivers/media/video/cx88/cx88.h	2002-01-02 22:37:56.000000000 +0100
@@ -232,6 +232,7 @@ extern struct sram_channel cx88_sram_cha
 #define CX88_BOARD_TBS_8910                77
 #define CX88_BOARD_PROF_6200               78
 #define CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII 79
+#define CX88_BOARD_WINFAST_DTV2000H_J        80

 enum cx88_itype {
 	CX88_VMUX_COMPOSITE1 = 1,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.