V4L/DVB (3800): Cx88: added support for KWorld MCE 200 Deluxe
Valentin Zagura [Thu, 13 Apr 2006 15:41:43 +0000 (12:41 -0300)]
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>

Documentation/video4linux/CARDLIST.cx88
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-tvaudio.c
drivers/media/video/cx88/cx88.h

index f85907e..3cc36e1 100644 (file)
@@ -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]
index 689d210..344c16e 100644 (file)
@@ -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);
index 641a0c5..3d3376d 100644 (file)
@@ -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);
index 12944f7..84c8770 100644 (file)
@@ -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,