Эх сурвалжийг харах

V4L/DVB (3800): Cx88: added support for KWorld MCE 200 Deluxe

This patch adds support for KWorld MCE 200 Deluxe.
Raw video is working perfectly, MPEG capture using
cx88-blackbird is also working, but the quality
could be improved.
svideo and radio until they can be tested also.

Signed-off-by: Valentin Zagura <puthre@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Valentin Zagura 19 жил өмнө
parent
commit
b3038304c9

+ 1 - 0
Documentation/video4linux/CARDLIST.cx88

@@ -46,3 +46,4 @@
  45 -> KWorld HardwareMpegTV XPert                         [17de:0840]
  46 -> DViCO FusionHDTV DVB-T Hybrid                       [18ac:db40,18ac:db44]
  47 -> pcHDTV HD5500 HDTV                                  [7063:5500]
+ 48 -> Kworld MCE 200 Deluxe                               [17de:0841]

+ 20 - 0
drivers/media/video/cx88/cx88-cards.c

@@ -1115,6 +1115,22 @@ struct cx88_board cx88_boards[] = {
 		}},
 		.dvb            = 1,
 	},
+	[CX88_BOARD_KWORLD_MCE200_DELUXE] = {
+		/* FIXME: tested TV input only, disabled composite,
+		   svideo and radio until they can be tested also. */
+		.name           = "Kworld MCE 200 Deluxe",
+		.tuner_type     = TUNER_TENA_9533_DI,
+		.radio_type     = UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.tuner_addr     = ADDR_UNSET,
+		.radio_addr     = ADDR_UNSET,
+		.input          = {{
+			.type   = CX88_VMUX_TELEVISION,
+			.vmux   = 0,
+			.gpio0  = 0x0000BDE6
+		}},
+		.blackbird = 1,
+	},
 };
 const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
 
@@ -1336,6 +1352,10 @@ struct cx88_subid cx88_subids[] = {
 		.subvendor = 0x7063,
 		.subdevice = 0x5500,
 		.card      = CX88_BOARD_PCHDTV_HD5500,
+	},{
+		.subvendor = 0x17de,
+		.subdevice = 0x0841,
+		.card      = CX88_BOARD_KWORLD_MCE200_DELUXE,
 	},
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);

+ 2 - 1
drivers/media/video/cx88/cx88-tvaudio.c

@@ -148,7 +148,8 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl)
 
 	if (cx88_boards[core->board].blackbird) {
 		/* sets sound input from external adc */
-		if (core->board == CX88_BOARD_HAUPPAUGE_ROSLYN)
+		if ((core->board == CX88_BOARD_HAUPPAUGE_ROSLYN)||
+		    (core->board == CX88_BOARD_KWORLD_MCE200_DELUXE))
 			cx_clear(AUD_CTL, EN_I2SIN_ENABLE);
 		else
 			cx_set(AUD_CTL, EN_I2SIN_ENABLE);

+ 1 - 0
drivers/media/video/cx88/cx88.h

@@ -190,6 +190,7 @@ extern struct sram_channel cx88_sram_channels[];
 #define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45
 #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46
 #define CX88_BOARD_PCHDTV_HD5500           47
+#define CX88_BOARD_KWORLD_MCE200_DELUXE    48
 
 enum cx88_itype {
 	CX88_VMUX_COMPOSITE1 = 1,