V4L/DVB (3276): Added terratec hybrid xs and kworld 2800rf support
authorMarkus Rechberger <mrechberger@gmail.com>
Tue, 7 Feb 2006 08:25:39 +0000 (06:25 -0200)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 7 Feb 2006 08:25:39 +0000 (06:25 -0200)
- Added terratec hybrid xs product/vendorid
- Added gpio audio initialization for kworld pvr 2800rf

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Documentation/video4linux/CARDLIST.em28xx
drivers/media/video/em28xx/em28xx-cards.c
drivers/media/video/em28xx/em28xx.h

index a0c7cad20971f5b8fa5d2d0280ae83d9d761bad0..7a903f7080c3da660b76b577df9f2e66f1782573 100644 (file)
@@ -8,3 +8,4 @@
   7 -> Leadtek Winfast USB II                   (em2800)
   8 -> Kworld USB2800                           (em2800)
   9 -> Pinnacle Dazzle DVC 90                   (em2820/em2840) [2304:0207]
+ 12 -> Unknown EM2820/2840 video grabber        (em2820/em2840)
index ed428c58b73d76098698ca123cb534ba19dd12d8..573d24d2a18d8632ddc715d9394cd2f31d78aa4e 100644 (file)
@@ -72,6 +72,24 @@ struct em28xx_board em28xx_boards[] = {
                        .amux     = 1,
                }},
        },
+       [EM2820_BOARD_KWORLD_PVRTV2800RF] = {
+               .name         = "Unknown EM2820/2840 video grabber",
+               .is_em2800    = 0,
+               .vchannels    = 2,
+               .norm         = VIDEO_MODE_PAL,
+               .tda9887_conf = TDA9887_PRESENT,
+               .has_tuner    = 1,
+               .decoder      = EM28XX_SAA7113,
+               .input           = {{
+                       .type     = EM28XX_VMUX_COMPOSITE1,
+                       .vmux     = 0,
+                       .amux     = 1,
+               },{
+                       .type     = EM28XX_VMUX_SVIDEO,
+                       .vmux     = 9,
+                       .amux     = 1,
+               }},
+       },
        [EM2820_BOARD_TERRATEC_CINERGY_250] = {
                .name         = "Terratec Cinergy 250 USB",
                .vchannels    = 3,
@@ -136,8 +154,30 @@ struct em28xx_board em28xx_boards[] = {
                        .amux     = 1,
                }},
        },
-       [EM2880_BOARD_WINTV_HVR_900] = {
-               .name         = "WinTV HVR 900",
+       [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900] = {
+               .name         = "Hauppauge WinTV HVR 900",
+               .vchannels    = 3,
+               .norm         = VIDEO_MODE_PAL,
+               .has_tuner    = 0,
+               .tda9887_conf = TDA9887_PRESENT,
+               .has_tuner    = 1,
+               .decoder      = EM28XX_TVP5150,
+               .input          = {{
+                       .type     = EM28XX_VMUX_COMPOSITE1,
+                       .vmux     = 2,
+                       .amux     = 0,
+               },{
+                       .type     = EM28XX_VMUX_TELEVISION,
+                       .vmux     = 0,
+                       .amux     = 1,
+               },{
+                       .type     = EM28XX_VMUX_SVIDEO,
+                       .vmux     = 9,
+                       .amux     = 1,
+               }},
+       },
+       [EM2880_BOARD_TERRATEC_HYBRID_XS] = {
+               .name         = "Terratec Hybrid XS",
                .vchannels    = 3,
                .norm         = VIDEO_MODE_PAL,
                .has_tuner    = 0,
@@ -276,7 +316,8 @@ struct usb_device_id em28xx_id_table [] = {
        { USB_DEVICE(0x2304, 0x0208), .driver_info = EM2820_BOARD_PINNACLE_USB_2 },
        { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 },
        { USB_DEVICE(0x2304, 0x0207), .driver_info = EM2820_BOARD_PINNACLE_DVC_90 },
-       { USB_DEVICE(0x2040, 0x6500), .driver_info = EM2880_BOARD_WINTV_HVR_900 },
+       { USB_DEVICE(0x2040, 0x6500), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 },
+       { USB_DEVICE(0x0ccd, 0x0042), .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS },
        { },
 };
 
@@ -284,7 +325,8 @@ void em28xx_pre_card_setup(struct em28xx *dev)
 {
        /* request some modules */
        switch(dev->model){
-               case EM2880_BOARD_WINTV_HVR_900:
+               case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
+               case EM2880_BOARD_TERRATEC_HYBRID_XS:
                        {
                                em28xx_write_regs_req(dev, 0x00, 0x08, "\x7d", 1); // reset through GPIO?
                                break;
@@ -317,6 +359,12 @@ void em28xx_card_setup(struct em28xx *dev)
                                        dev->has_msp34xx=0;
                                break;
                        }
+               case EM2820_BOARD_KWORLD_PVRTV2800RF:
+                       {
+                               em28xx_write_regs_req(dev,0x00,0x08, "\xf9", 1); // GPIO enables sound on KWORLD PVR TV 2800RF
+                               break;
+                       }
+
        }
 }
 
index 8269cca7dcdbbafcb82435265553c4aa3251d902..ddf06c520e990002b3b41ec7d02cfe8830267529 100644 (file)
@@ -41,7 +41,9 @@
 #define EM2800_BOARD_LEADTEK_WINFAST_USBII      7
 #define EM2800_BOARD_KWORLD_USB2800             8
 #define EM2820_BOARD_PINNACLE_DVC_90           9
-#define EM2880_BOARD_WINTV_HVR_900              10
+#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900   10
+#define EM2880_BOARD_TERRATEC_HYBRID_XS                11
+#define EM2820_BOARD_KWORLD_PVRTV2800RF                12
 
 #define UNSET -1