V4L/DVB (5515): Use a better format to represent usbvision supported boards
Mauro Carvalho Chehab [Sat, 14 Apr 2007 18:09:59 +0000 (15:09 -0300)]
Changed usbvision cards table to allow:
1) Not repeat USB ID on two structs;
2) Not need to specify both usb and card description tables at
   the same order, removing some magic;
Some cards had duplicated names. Fixed.
A test for an specific board were doing by using a string comparation.
The comparation were wrong. Also, it is not a good practice to recognize
a board based on his string name.
Acked-by: Thierry MERLE <thierry.merle@free.fr>

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

Documentation/video4linux/CARDLIST.usbvision
drivers/media/video/usbvision/usbvision-cards.c
drivers/media/video/usbvision/usbvision-cards.h [new file with mode: 0644]
drivers/media/video/usbvision/usbvision-video.c
drivers/media/video/usbvision/usbvision.h

index 9f03e86..ab110b7 100644 (file)
  23 -> Hauppauge WinTV USB (PAL I FM)                           [0573:4d12]
  24 -> Hauppauge WinTV USB (PAL D/K FM)                         [0573:4d14]
  25 -> Hauppauge WinTV USB Pro (NTSC M/N)                       [0573:4d2a]
- 26 -> Hauppauge WinTV USB Pro (NTSC M/N)                       [0573:4d2b]
+ 26 -> Hauppauge WinTV USB Pro (NTSC M/N) V2                    [0573:4d2b]
  27 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)          [0573:4d2c]
- 28 -> Hauppauge WinTV USB Pro (NTSC M/N)                       [0573:4d20]
+ 28 -> Hauppauge WinTV USB Pro (NTSC M/N) V3                    [0573:4d20]
  29 -> Hauppauge WinTV USB Pro (PAL B/G)                        [0573:4d21]
  30 -> Hauppauge WinTV USB Pro (PAL I)                          [0573:4d22]
  31 -> Hauppauge WinTV USB Pro (PAL/SECAM L)                    [0573:4d23]
  32 -> Hauppauge WinTV USB Pro (PAL D/K)                        [0573:4d24]
  33 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)             [0573:4d25]
- 34 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)             [0573:4d26]
- 35 -> Hauppauge WinTV USB Pro (PAL B/G)                        [0573:4d27]
+ 34 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2          [0573:4d26]
+ 35 -> Hauppauge WinTV USB Pro (PAL B/G) V2                     [0573:4d27]
  36 -> Hauppauge WinTV USB Pro (PAL B/G,D/K)                    [0573:4d28]
  37 -> Hauppauge WinTV USB Pro (PAL I,D/K)                      [0573:4d29]
  38 -> Hauppauge WinTV USB Pro (NTSC M/N FM)                    [0573:4d30]
@@ -43,7 +43,7 @@
  42 -> Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) [0573:4d35]
  43 -> Hauppauge WinTV USB Pro (Temic PAL B/G FM)               [0573:4d36]
  44 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)       [0573:4d37]
- 45 -> Hauppauge WinTV USB Pro (NTSC M/N FM)                    [0573:4d38]
+ 45 -> Hauppauge WinTV USB Pro (NTSC M/N FM) V2                 [0573:4d38]
  46 -> Camtel Technology USB TV Genie Pro FM Model TVB330       [0768:0006]
  47 -> Digital Video Creator I                                  [07d0:0001]
  48 -> Global Village GV-007 (NTSC)                             [07d0:0002]
@@ -56,9 +56,9 @@
  55 -> Pinnacle Studio PCTV USB (PAL) FM                        [2304:0110]
  56 -> Miro PCTV USB                                            [2304:0111]
  57 -> Pinnacle Studio PCTV USB (NTSC) FM                       [2304:0112]
- 58 -> Pinnacle Studio PCTV USB (PAL) FM                        [2304:0210]
- 59 -> Pinnacle Studio PCTV USB (NTSC) FM                       [2304:0212]
- 60 -> Pinnacle Studio PCTV USB (PAL) FM                        [2304:0214]
+ 58 -> Pinnacle Studio PCTV USB (PAL) FM V2                     [2304:0210]
+ 59 -> Pinnacle Studio PCTV USB (NTSC) FM V2                    [2304:0212]
+ 60 -> Pinnacle Studio PCTV USB (PAL) FM V3                     [2304:0214]
  61 -> Pinnacle Studio Linx Video input cable (NTSC)            [2304:0300]
  62 -> Pinnacle Studio Linx Video input cable (PAL)             [2304:0301]
  63 -> Pinnacle PCTV Bungee USB (PAL) FM                        [2304:0419]
index 78d2c84..c63048d 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * USBVISION.H
- *  usbvision header file
+ *  usbvision-cards.c
+ *  usbvision cards definition file
  *
  * Copyright (c) 1999-2005 Joerg Heckenbach <joerg@heckenbach-aw.de>
  *
 #include <media/v4l2-dev.h>
 #include <media/tuner.h>
 #include "usbvision.h"
+#include "usbvision-cards.h"
 
 /* Supported Devices: A table for usbvision.c*/
 struct usbvision_device_data_st  usbvision_device_data[] = {
-       {0xfff0, 0xfff0, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, -1, -1, "Custom Dummy USBVision Device"},
-       {0x0a6f, 0x0400, -1, CODEC_SAA7113, 4, V4L2_STD_NTSC,  1, 0, 1, 0, 0,                          -1, -1, -1, -1, -1, "Xanboo"},
-       {0x050d, 0x0106, -1, CODEC_SAA7113, 2, V4L2_STD_PAL,   1, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Belkin USB VideoBus II Adapter"},
-       {0x050d, 0x0207, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC,  1, 0, 1, 0, 0,                          -1, -1, -1, -1, -1, "Belkin Components USB VideoBus"},
-       {0x050d, 0x0208, -1, CODEC_SAA7113, 2, V4L2_STD_PAL,   1, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Belkin USB VideoBus II"},
-       {0x0571, 0x0002,  0, CODEC_SAA7111, 2, V4L2_STD_PAL,   0, 0, 1, 0, 0,                          -1, -1, -1, -1,  7, "echoFX InterView Lite"},
-       {0x0573, 0x0003, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC,  1, 0, 1, 0, 0,                          -1, -1, -1, -1, -1, "USBGear USBG-V1 resp. HAMA USB"},
-       {0x0573, 0x0400, -1, CODEC_SAA7113, 4, V4L2_STD_NTSC,  0, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "D-Link V100"},
-       {0x0573, 0x2000, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC,  1, 0, 1, 0, 0,                          -1, -1, -1, -1, -1, "X10 USB Camera"},
-       {0x0573, 0x2d00, -1, CODEC_SAA7111, 2, V4L2_STD_PAL,   1, 0, 1, 0, 0,                          -1, -1, -1,  3,  7, "Hauppauge WinTV USB Live (PAL B/G)"},
-       {0x0573, 0x2d01, -1, CODEC_SAA7113, 2, V4L2_STD_NTSC,  0, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Live Pro (NTSC M/N)"},
-       {0x0573, 0x2101, -1, CODEC_SAA7113, 2, V4L2_STD_PAL,   2, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Zoran Co. PMD (Nogatech) AV-grabber Manhattan"},
-       {0x0573, 0x4100, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, 20, -1, "Nogatech USB-TV (NTSC) FM"},
-       {0x0573, 0x4110, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, 20, -1, "PNY USB-TV (NTSC) FM"},
-       {0x0573, 0x4450,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "PixelView PlayTv-USB PRO (PAL) FM"},
-       {0x0573, 0x4550,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "ZTV ZT-721 2.4GHz USB A/V Receiver"},
-       {0x0573, 0x4d00, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 0, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, 20, -1, "Hauppauge WinTV USB (NTSC M/N)"},
-       {0x0573, 0x4d01, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL B/G)"},
-       {0x0573, 0x4d02, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL I)"},
-       {0x0573, 0x4d03, -1, CODEC_SAA7111, 3, V4L2_STD_SECAM, 1, 0, 1, 1, TUNER_PHILIPS_SECAM,        -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL/SECAM L)"},
-       {0x0573, 0x4d04, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL D/K)"},
-       {0x0573, 0x4d10, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, -1, -1, "Hauppauge WinTV USB (NTSC FM)"},
-       {0x0573, 0x4d11, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL B/G FM)"},
-       {0x0573, 0x4d12, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL I FM)"},
-       {0x0573, 0x4d14, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Hauppauge WinTV USB (PAL D/K FM)"},
-       {0x0573, 0x4d2a,  0, CODEC_SAA7113, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_MICROTUNE_4049FM5,    -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (NTSC M/N)"},
-       {0x0573, 0x4d2b,  0, CODEC_SAA7113, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_MICROTUNE_4049FM5,    -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (NTSC M/N)"},
-       {0x0573, 0x4d2c,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_FM1216ME_MK3, -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)"},
-       {0x0573, 0x4d20,  0, CODEC_SAA7113, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (NTSC M/N)"},
-       {0x0573, 0x4d21,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL B/G)"},
-       {0x0573, 0x4d22,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL I)"},
-       {0x0573, 0x4d23, -1, CODEC_SAA7113, 3, V4L2_STD_SECAM, 1, 0, 1, 1, TUNER_PHILIPS_SECAM,        -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL/SECAM L)"},
-       {0x0573, 0x4d24, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL D/K)"},
-       {0x0573, 0x4d25, -1, CODEC_SAA7113, 3, V4L2_STD_SECAM, 1, 0, 1, 1, TUNER_PHILIPS_SECAM,        -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)"},
-       {0x0573, 0x4d26, -1, CODEC_SAA7113, 3, V4L2_STD_SECAM, 1, 0, 1, 1, TUNER_PHILIPS_SECAM,        -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)"},
-       {0x0573, 0x4d27, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_ALPS_TSBE1_PAL,       -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL B/G)"},
-       {0x0573, 0x4d28, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_ALPS_TSBE1_PAL,       -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL B/G,D/K)"},
-       {0x0573, 0x4d29, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL I,D/K)"},
-       {0x0573, 0x4d30, -1, CODEC_SAA7113, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (NTSC M/N FM)"},
-       {0x0573, 0x4d31,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL B/G FM)"},
-       {0x0573, 0x4d32,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL I FM)"},
-       {0x0573, 0x4d34,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL D/K FM)"},
-       {0x0573, 0x4d35,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_MICROTUNE_4049FM5,    -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)"},
-       {0x0573, 0x4d36,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_MICROTUNE_4049FM5,    -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (Temic PAL B/G FM)"},
-       {0x0573, 0x4d37,  0, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_FM1216ME_MK3, -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)"},
-       {0x0573, 0x4d38,  0, CODEC_SAA7113, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1,  0,  3,  7, "Hauppauge WinTV USB Pro (NTSC M/N FM)"},
-       {0x0768, 0x0006, -1, CODEC_SAA7113, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1,  5,  5, -1, "Camtel Technology USB TV Genie Pro FM Model TVB330"},
-       {0x07d0, 0x0001, -1, CODEC_SAA7113, 2, V4L2_STD_PAL,   0, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Digital Video Creator I"},
-       {0x07d0, 0x0002, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC,  0, 0, 1, 0, 0,                          -1, -1, 82, 20,  7, "Global Village GV-007 (NTSC)"},
-       {0x07d0, 0x0003,  0, CODEC_SAA7113, 2, V4L2_STD_NTSC,  0, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)"},
-       {0x07d0, 0x0004,  0, CODEC_SAA7113, 2, V4L2_STD_PAL,   0, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Dazzle Fusion Model DVC-80 Rev 1 (PAL)"},
-       {0x07d0, 0x0005,  0, CODEC_SAA7113, 2, V4L2_STD_SECAM, 0, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)"},
-       {0x07f8, 0x9104,  0, CODEC_SAA7113, 2, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_FM1216ME_MK3, -1, -1,  0,  3,  7, "Eskape Labs MyTV2Go"},
-       {0x2304, 0x010d, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 0, 0, 1, TUNER_TEMIC_4066FY5_PAL_I,  -1, -1, -1, -1, -1, "Pinnacle Studio PCTV USB (PAL)"},
-       {0x2304, 0x0109, -1, CODEC_SAA7111, 3, V4L2_STD_SECAM, 1, 0, 1, 1, TUNER_PHILIPS_SECAM,        -1, -1, -1, -1, -1, "Pinnacle Studio PCTV USB (SECAM)"},
-       {0x2304, 0x0110, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_PHILIPS_PAL,          -1, -1,128, 23, -1, "Pinnacle Studio PCTV USB (PAL) FM"},
-       {0x2304, 0x0111, -1, CODEC_SAA7111, 3, V4L2_STD_PAL,   1, 0, 1, 1, TUNER_PHILIPS_PAL,          -1, -1, -1, -1, -1, "Miro PCTV USB"},
-       {0x2304, 0x0112, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, -1, -1, "Pinnacle Studio PCTV USB (NTSC) FM"},
-       {0x2304, 0x0210, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_TEMIC_4009FR5_PAL,    -1, -1,  0,  3,  7, "Pinnacle Studio PCTV USB (PAL) FM"},
-       {0x2304, 0x0212, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 1, 1, 1, TUNER_TEMIC_4039FR5_NTSC,   -1, -1,  0,  3,  7, "Pinnacle Studio PCTV USB (NTSC) FM"},
-       {0x2304, 0x0214, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_TEMIC_4009FR5_PAL,    -1, -1,  0,  3,  7, "Pinnacle Studio PCTV USB (PAL) FM"},
-       {0x2304, 0x0300, -1, CODEC_SAA7113, 2, V4L2_STD_NTSC,  1, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Pinnacle Studio Linx Video input cable (NTSC)"},
-       {0x2304, 0x0301, -1, CODEC_SAA7113, 2, V4L2_STD_PAL,   1, 0, 1, 0, 0,                          -1, -1,  0,  3,  7, "Pinnacle Studio Linx Video input cable (PAL)"},
-       {0x2304, 0x0419, -1, CODEC_SAA7113, 3, V4L2_STD_PAL,   1, 1, 1, 1, TUNER_TEMIC_4009FR5_PAL,    -1, -1,  0,  3,  7, "Pinnacle PCTV Bungee USB (PAL) FM"},
-       {0x2400, 0x4200, -1, CODEC_SAA7111, 3, V4L2_STD_NTSC,  1, 0, 1, 1, TUNER_PHILIPS_NTSC_M,       -1, -1, -1, -1, -1, "Hauppauge WinTv-USB"},
+       [DUMMY_DEVICE] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Custom Dummy USBVision Device",
+       },
+       [XANBOO] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 4,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Xanboo",
+       },
+       [BELKIN_VIDEOBUS_II] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Belkin USB VideoBus II Adapter",
+       },
+       [BELKIN_VIDEOBUS] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Belkin Components USB VideoBus",
+       },
+       [BELKIN_USB_VIDEOBUS_II] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Belkin USB VideoBus II",
+       },
+       [ECHOFX_INTERVIEW_LITE] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = 7,
+               .ModelString   = "echoFX InterView Lite",
+       },
+       [USBGEAR_USBG_V1] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "USBGear USBG-V1 resp. HAMA USB",
+       },
+       [D_LINK_V100] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 4,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "D-Link V100",
+       },
+       [X10_USB_CAMERA] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "X10 USB Camera",
+       },
+       [HPG_WINTV_LIVE_PAL_BG] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Live (PAL B/G)",
+       },
+       [HPG_WINTV_LIVE_PRO_NTSC_MN] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Live Pro (NTSC M/N)",
+       },
+       [ZORAN_PMD_NOGATECH] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 2,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Zoran Co. PMD (Nogatech) AV-grabber Manhattan",
+       },
+       [NOGATECH_USB_TV_NTSC_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = 20,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Nogatech USB-TV (NTSC) FM",
+       },
+       [PNY_USB_TV_NTSC_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = 20,
+               .Dvi_yuv       = -1,
+               .ModelString   = "PNY USB-TV (NTSC) FM",
+       },
+       [PV_PLAYTV_USB_PRO_PAL_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "PixelView PlayTv-USB PRO (PAL) FM",
+       },
+       [ZT_721] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "ZTV ZT-721 2.4GHz USB A/V Receiver",
+       },
+       [HPG_WINTV_NTSC_MN] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = 20,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (NTSC M/N)",
+       },
+       [HPG_WINTV_PAL_BG] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL B/G)",
+       },
+       [HPG_WINTV_PAL_I] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL I)",
+       },
+       [HPG_WINTV_PAL_SECAM_L] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_SECAM,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_SECAM,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL/SECAM L)",
+       },
+       [HPG_WINTV_PAL_D_K] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL D/K)",
+       },
+       [HPG_WINTV_NTSC_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (NTSC FM)",
+       },
+       [HPG_WINTV_PAL_BG_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL B/G FM)",
+       },
+       [HPG_WINTV_PAL_I_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL I FM)",
+       },
+       [HPG_WINTV_PAL_D_K_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTV USB (PAL D/K FM)",
+       },
+       [HPG_WINTV_PRO_NTSC_MN] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_MICROTUNE_4049FM5,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N)",
+       },
+       [HPG_WINTV_PRO_NTSC_MN_V2] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_MICROTUNE_4049FM5,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N) V2",
+       },
+       [HPG_WINTV_PRO_PAL] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_FM1216ME_MK3,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)",
+       },
+       [HPG_WINTV_PRO_NTSC_MN_V3] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N) V3",
+       },
+       [HPG_WINTV_PRO_PAL_BG] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL B/G)",
+       },
+       [HPG_WINTV_PRO_PAL_I] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL I)",
+       },
+       [HPG_WINTV_PRO_PAL_SECAM_L] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_SECAM,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_SECAM,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM L)",
+       },
+       [HPG_WINTV_PRO_PAL_D_K] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL D/K)",
+       },
+       [HPG_WINTV_PRO_PAL_SECAM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_SECAM,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_SECAM,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)",
+       },
+       [HPG_WINTV_PRO_PAL_SECAM_V2] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_SECAM,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_SECAM,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2",
+       },
+       [HPG_WINTV_PRO_PAL_BG_V2] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_ALPS_TSBE1_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL B/G) V2",
+       },
+       [HPG_WINTV_PRO_PAL_BG_D_K] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_ALPS_TSBE1_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL B/G,D/K)",
+       },
+       [HPG_WINTV_PRO_PAL_I_D_K] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL I,D/K)",
+       },
+       [HPG_WINTV_PRO_NTSC_MN_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N FM)",
+       },
+       [HPG_WINTV_PRO_PAL_BG_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL B/G FM)",
+       },
+       [HPG_WINTV_PRO_PAL_I_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL I FM)",
+       },
+       [HPG_WINTV_PRO_PAL_D_K_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL D/K FM)",
+       },
+       [HPG_WINTV_PRO_TEMIC_PAL_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_MICROTUNE_4049FM5,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)",
+       },
+       [HPG_WINTV_PRO_TEMIC_PAL_BG_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_MICROTUNE_4049FM5,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (Temic PAL B/G FM)",
+       },
+       [HPG_WINTV_PRO_PAL_FM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_FM1216ME_MK3,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)",
+       },
+       [HPG_WINTV_PRO_NTSC_MN_FM_V2] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N FM) V2",
+       },
+       [CAMTEL_TVB330] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 5,
+               .Y_Offset      = 5,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Camtel Technology USB TV Genie Pro FM Model TVB330",
+       },
+       [DIGITAL_VIDEO_CREATOR_I] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Digital Video Creator I",
+       },
+       [GLOBAL_VILLAGE_GV_007_NTSC] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 82,
+               .Y_Offset      = 20,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Global Village GV-007 (NTSC)",
+       },
+       [DAZZLE_DVC_50_REV_1_NTSC] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)",
+       },
+       [DAZZLE_DVC_80_REV_1_PAL] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Dazzle Fusion Model DVC-80 Rev 1 (PAL)",
+       },
+       [DAZZLE_DVC_90_REV_1_SECAM] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_SECAM,
+               .AudioChannels = 0,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)",
+       },
+       [ESKAPE_LABS_MYTV2GO] = {
+               .Interface     = 0,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_FM1216ME_MK3,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Eskape Labs MyTV2Go",
+       },
+       [PINNA_PCTV_USB_PAL] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 0,
+               .Tuner         = 1,
+               .TunerType     = TUNER_TEMIC_4066FY5_PAL_I,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Pinnacle Studio PCTV USB (PAL)",
+       },
+       [PINNA_PCTV_USB_SECAM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_SECAM,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_SECAM,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Pinnacle Studio PCTV USB (SECAM)",
+       },
+       [PINNA_PCTV_USB_PAL_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 128,
+               .Y_Offset      = 23,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Pinnacle Studio PCTV USB (PAL) FM",
+       },
+       [MIRO_PCTV_USB] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Miro PCTV USB",
+       },
+       [PINNA_PCTV_USB_NTSC_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Pinnacle Studio PCTV USB (NTSC) FM",
+       },
+       [PINNA_PCTV_USB_PAL_FM_V2] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_TEMIC_4009FR5_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Pinnacle Studio PCTV USB (PAL) FM V2",
+       },
+       [PINNA_PCTV_USB_NTSC_FM_V2] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_TEMIC_4039FR5_NTSC,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Pinnacle Studio PCTV USB (NTSC) FM V2",
+       },
+       [PINNA_PCTV_USB_PAL_FM_V3] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_TEMIC_4009FR5_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Pinnacle Studio PCTV USB (PAL) FM V3",
+       },
+       [PINNA_LINX_VD_IN_CAB_NTSC] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Pinnacle Studio Linx Video input cable (NTSC)",
+       },
+       [PINNA_LINX_VD_IN_CAB_PAL] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 2,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 0,
+               .TunerType     = 0,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Pinnacle Studio Linx Video input cable (PAL)",
+       },
+       [PINNA_PCTV_BUNGEE_PAL_FM] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7113,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_PAL,
+               .AudioChannels = 1,
+               .Radio         = 1,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_TEMIC_4009FR5_PAL,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = 0,
+               .Y_Offset      = 3,
+               .Dvi_yuv       = 7,
+               .ModelString   = "Pinnacle PCTV Bungee USB (PAL) FM",
+       },
+       [HPG_WINTV] = {
+               .Interface     = -1,
+               .Codec         = CODEC_SAA7111,
+               .VideoChannels = 3,
+               .VideoNorm     = V4L2_STD_NTSC,
+               .AudioChannels = 1,
+               .Radio         = 0,
+               .vbi           = 1,
+               .Tuner         = 1,
+               .TunerType     = TUNER_PHILIPS_NTSC_M,
+               .Vin_Reg1      = -1,
+               .Vin_Reg2      = -1,
+               .X_Offset      = -1,
+               .Y_Offset      = -1,
+               .Dvi_yuv       = -1,
+               .ModelString   = "Hauppauge WinTv-USB",
+       },
        {}  /* Terminating entry */
 };
 
 /* Supported Devices */
 
 struct usb_device_id usbvision_table [] = {
-       { USB_DEVICE(0xfff0, 0xfff0) },  /* Custom Dummy USBVision Device */
-       { USB_DEVICE(0x0a6f, 0x0400) },  /* Xanboo */
-       { USB_DEVICE(0x050d, 0x0106) },  /* Belkin USB VideoBus II Adapter */
-       { USB_DEVICE(0x050d, 0x0207) },  /* Belkin Components USB VideoBus */
-       { USB_DEVICE(0x050d, 0x0208) },  /* Belkin USB VideoBus II */
-       { USB_DEVICE(0x0571, 0x0002) },  /* echoFX InterView Lite */
-       { USB_DEVICE(0x0573, 0x0003) },  /* USBGear USBG-V1 resp. HAMA USB */
-       { USB_DEVICE(0x0573, 0x0400) },  /* D-Link V100 */
-       { USB_DEVICE(0x0573, 0x2000) },  /* X10 USB Camera */
-       { USB_DEVICE(0x0573, 0x2d00) },  /* Hauppauge WinTV USB Live (PAL B/G) */
-       { USB_DEVICE(0x0573, 0x2d01) },  /* Hauppauge WinTV USB Live Pro (NTSC M/N) */
-       { USB_DEVICE(0x0573, 0x2101) },  /* Zoran Co. PMD (Nogatech) AV-grabber Manhattan */
-       { USB_DEVICE(0x0573, 0x4100) },  /* Nogatech USB-TV FM (NTSC) */
-       { USB_DEVICE(0x0573, 0x4110) },  /* PNY USB-TV (NTSC) FM */
-       { USB_DEVICE(0x0573, 0x4450) },  /* PixelView PlayTv-USB PRO (PAL) FM */
-       { USB_DEVICE(0x0573, 0x4550) },  /* ZTV ZT-721 2.4GHz USB A/V Receiver */
-       { USB_DEVICE(0x0573, 0x4d00) },  /* Hauppauge WinTV USB (NTSC M/N) */
-       { USB_DEVICE(0x0573, 0x4d01) },  /* Hauppauge WinTV USB (PAL B/G) */
-       { USB_DEVICE(0x0573, 0x4d02) },  /* Hauppauge WinTV USB (PAL I) */
-       { USB_DEVICE(0x0573, 0x4d03) },  /* Hauppauge WinTV USB (PAL/SECAM L) */
-       { USB_DEVICE(0x0573, 0x4d04) },  /* Hauppauge WinTV USB (PAL D/K) */
-       { USB_DEVICE(0x0573, 0x4d10) },  /* Hauppauge WinTV USB (NTSC FM) */
-       { USB_DEVICE(0x0573, 0x4d11) },  /* Hauppauge WinTV USB (PAL B/G FM) */
-       { USB_DEVICE(0x0573, 0x4d12) },  /* Hauppauge WinTV USB (PAL I FM) */
-       { USB_DEVICE(0x0573, 0x4d14) },  /* Hauppauge WinTV USB (PAL D/K FM) */
-       { USB_DEVICE(0x0573, 0x4d2a) },  /* Hauppauge WinTV USB Pro (NTSC M/N) */
-       { USB_DEVICE(0x0573, 0x4d2b) },  /* Hauppauge WinTV USB Pro (NTSC M/N) */
-       { USB_DEVICE(0x0573, 0x4d2c) },  /* Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L) */
-       { USB_DEVICE(0x0573, 0x4d20) },  /* Hauppauge WinTV USB Pro (NTSC M/N) */
-       { USB_DEVICE(0x0573, 0x4d21) },  /* Hauppauge WinTV USB Pro (PAL B/G) */
-       { USB_DEVICE(0x0573, 0x4d22) },  /* Hauppauge WinTV USB Pro (PAL I) */
-       { USB_DEVICE(0x0573, 0x4d23) },  /* Hauppauge WinTV USB Pro (PAL/SECAM L) */
-       { USB_DEVICE(0x0573, 0x4d24) },  /* Hauppauge WinTV USB Pro (PAL D/K) */
-       { USB_DEVICE(0x0573, 0x4d25) },  /* Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) */
-       { USB_DEVICE(0x0573, 0x4d26) },  /* Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) */
-       { USB_DEVICE(0x0573, 0x4d27) },  /* Hauppauge WinTV USB Pro (PAL B/G) */
-       { USB_DEVICE(0x0573, 0x4d28) },  /* Hauppauge WinTV USB Pro (PAL B/G,D/K) */
-       { USB_DEVICE(0x0573, 0x4d29) },  /* Hauppauge WinTV USB Pro (PAL I,D/K) */
-       { USB_DEVICE(0x0573, 0x4d30) },  /* Hauppauge WinTV USB Pro (NTSC M/N FM) */
-       { USB_DEVICE(0x0573, 0x4d31) },  /* Hauppauge WinTV USB Pro (PAL B/G FM) */
-       { USB_DEVICE(0x0573, 0x4d32) },  /* Hauppauge WinTV USB Pro (PAL I FM) */
-       { USB_DEVICE(0x0573, 0x4d34) },  /* Hauppauge WinTV USB Pro (PAL D/K FM) */
-       { USB_DEVICE(0x0573, 0x4d35) },  /* Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) */
-       { USB_DEVICE(0x0573, 0x4d36) },  /* Hauppauge WinTV USB Pro (Temic PAL B/G FM) */
-       { USB_DEVICE(0x0573, 0x4d37) },  /* Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM) */
-       { USB_DEVICE(0x0573, 0x4d38) },  /* Hauppauge WinTV USB Pro (NTSC M/N FM) */
-       { USB_DEVICE(0x0768, 0x0006) },  /* Camtel Technology USB TV Genie Pro FM Model TVB330 */
-       { USB_DEVICE(0x07d0, 0x0001) },  /* Digital Video Creator I */
-       { USB_DEVICE(0x07d0, 0x0002) },  /* Global Village GV-007 (NTSC) */
-       { USB_DEVICE(0x07d0, 0x0003) },  /* Dazzle Fusion Model DVC-50 Rev 1 (NTSC) */
-       { USB_DEVICE(0x07d0, 0x0004) },  /* Dazzle Fusion Model DVC-80 Rev 1 (PAL) */
-       { USB_DEVICE(0x07d0, 0x0005) },  /* Dazzle Fusion Model DVC-90 Rev 1 (SECAM) */
-       { USB_DEVICE(0x07f8, 0x9104) },  /* Eskape Labs MyTV2Go */
-       { USB_DEVICE(0x2304, 0x010d) },  /* Pinnacle Studio PCTV USB (PAL) */
-       { USB_DEVICE(0x2304, 0x0109) },  /* Pinnacle Studio PCTV USB (SECAM) */
-       { USB_DEVICE(0x2304, 0x0110) },  /* Pinnacle Studio PCTV USB (PAL) */
-       { USB_DEVICE(0x2304, 0x0111) },  /* Miro PCTV USB */
-       { USB_DEVICE(0x2304, 0x0112) },  /* Pinnacle Studio PCTV USB (NTSC) with FM radio */
-       { USB_DEVICE(0x2304, 0x0210) },  /* Pinnacle Studio PCTV USB (PAL) with FM radio */
-       { USB_DEVICE(0x2304, 0x0212) },  /* Pinnacle Studio PCTV USB (NTSC) with FM radio */
-       { USB_DEVICE(0x2304, 0x0214) },  /* Pinnacle Studio PCTV USB (PAL) with FM radio */
-       { USB_DEVICE(0x2304, 0x0300) },  /* Pinnacle Studio Linx Video input cable (NTSC) */
-       { USB_DEVICE(0x2304, 0x0301) },  /* Pinnacle Studio Linx Video input cable (PAL) */
-       { USB_DEVICE(0x2304, 0x0419) },  /* Pinnacle PCTV Bungee USB (PAL) FM */
-       { USB_DEVICE(0x2400, 0x4200) },  /* Hauppauge WinTv-USB2 Model 42012 */
+       { USB_DEVICE(0xfff0, 0xfff0), .driver_info=DUMMY_DEVICE },
+       { USB_DEVICE(0x0a6f, 0x0400), .driver_info=XANBOO },
+       { USB_DEVICE(0x050d, 0x0106), .driver_info=BELKIN_VIDEOBUS_II },
+       { USB_DEVICE(0x050d, 0x0207), .driver_info=BELKIN_VIDEOBUS },
+       { USB_DEVICE(0x050d, 0x0208), .driver_info=BELKIN_USB_VIDEOBUS_II },
+       { USB_DEVICE(0x0571, 0x0002), .driver_info=ECHOFX_INTERVIEW_LITE },
+       { USB_DEVICE(0x0573, 0x0003), .driver_info=USBGEAR_USBG_V1 },
+       { USB_DEVICE(0x0573, 0x0400), .driver_info=D_LINK_V100 },
+       { USB_DEVICE(0x0573, 0x2000), .driver_info=X10_USB_CAMERA },
+       { USB_DEVICE(0x0573, 0x2d00), .driver_info=HPG_WINTV_LIVE_PAL_BG },
+       { USB_DEVICE(0x0573, 0x2d01), .driver_info=HPG_WINTV_LIVE_PRO_NTSC_MN },
+       { USB_DEVICE(0x0573, 0x2101), .driver_info=ZORAN_PMD_NOGATECH },
+       { USB_DEVICE(0x0573, 0x4100), .driver_info=NOGATECH_USB_TV_NTSC_FM },
+       { USB_DEVICE(0x0573, 0x4110), .driver_info=PNY_USB_TV_NTSC_FM },
+       { USB_DEVICE(0x0573, 0x4450), .driver_info=PV_PLAYTV_USB_PRO_PAL_FM },
+       { USB_DEVICE(0x0573, 0x4550), .driver_info=ZT_721 },
+       { USB_DEVICE(0x0573, 0x4d00), .driver_info=HPG_WINTV_NTSC_MN },
+       { USB_DEVICE(0x0573, 0x4d01), .driver_info=HPG_WINTV_PAL_BG },
+       { USB_DEVICE(0x0573, 0x4d02), .driver_info=HPG_WINTV_PAL_I },
+       { USB_DEVICE(0x0573, 0x4d03), .driver_info=HPG_WINTV_PAL_SECAM_L },
+       { USB_DEVICE(0x0573, 0x4d04), .driver_info=HPG_WINTV_PAL_D_K },
+       { USB_DEVICE(0x0573, 0x4d10), .driver_info=HPG_WINTV_NTSC_FM },
+       { USB_DEVICE(0x0573, 0x4d11), .driver_info=HPG_WINTV_PAL_BG_FM },
+       { USB_DEVICE(0x0573, 0x4d12), .driver_info=HPG_WINTV_PAL_I_FM },
+       { USB_DEVICE(0x0573, 0x4d14), .driver_info=HPG_WINTV_PAL_D_K_FM },
+       { USB_DEVICE(0x0573, 0x4d2a), .driver_info=HPG_WINTV_PRO_NTSC_MN },
+       { USB_DEVICE(0x0573, 0x4d2b), .driver_info=HPG_WINTV_PRO_NTSC_MN_V2 },
+       { USB_DEVICE(0x0573, 0x4d2c), .driver_info=HPG_WINTV_PRO_PAL },
+       { USB_DEVICE(0x0573, 0x4d20), .driver_info=HPG_WINTV_PRO_NTSC_MN_V3 },
+       { USB_DEVICE(0x0573, 0x4d21), .driver_info=HPG_WINTV_PRO_PAL_BG },
+       { USB_DEVICE(0x0573, 0x4d22), .driver_info=HPG_WINTV_PRO_PAL_I },
+       { USB_DEVICE(0x0573, 0x4d23), .driver_info=HPG_WINTV_PRO_PAL_SECAM_L },
+       { USB_DEVICE(0x0573, 0x4d24), .driver_info=HPG_WINTV_PRO_PAL_D_K },
+       { USB_DEVICE(0x0573, 0x4d25), .driver_info=HPG_WINTV_PRO_PAL_SECAM },
+       { USB_DEVICE(0x0573, 0x4d26), .driver_info=HPG_WINTV_PRO_PAL_SECAM_V2 },
+       { USB_DEVICE(0x0573, 0x4d27), .driver_info=HPG_WINTV_PRO_PAL_BG_V2 },
+       { USB_DEVICE(0x0573, 0x4d28), .driver_info=HPG_WINTV_PRO_PAL_BG_D_K },
+       { USB_DEVICE(0x0573, 0x4d29), .driver_info=HPG_WINTV_PRO_PAL_I_D_K },
+       { USB_DEVICE(0x0573, 0x4d30), .driver_info=HPG_WINTV_PRO_NTSC_MN_FM },
+       { USB_DEVICE(0x0573, 0x4d31), .driver_info=HPG_WINTV_PRO_PAL_BG_FM },
+       { USB_DEVICE(0x0573, 0x4d32), .driver_info=HPG_WINTV_PRO_PAL_I_FM },
+       { USB_DEVICE(0x0573, 0x4d34), .driver_info=HPG_WINTV_PRO_PAL_D_K_FM },
+       { USB_DEVICE(0x0573, 0x4d35), .driver_info=HPG_WINTV_PRO_TEMIC_PAL_FM },
+       { USB_DEVICE(0x0573, 0x4d36), .driver_info=HPG_WINTV_PRO_TEMIC_PAL_BG_FM },
+       { USB_DEVICE(0x0573, 0x4d37), .driver_info=HPG_WINTV_PRO_PAL_FM },
+       { USB_DEVICE(0x0573, 0x4d38), .driver_info=HPG_WINTV_PRO_NTSC_MN_FM_V2 },
+       { USB_DEVICE(0x0768, 0x0006), .driver_info=CAMTEL_TVB330 },
+       { USB_DEVICE(0x07d0, 0x0001), .driver_info=DIGITAL_VIDEO_CREATOR_I },
+       { USB_DEVICE(0x07d0, 0x0002), .driver_info=GLOBAL_VILLAGE_GV_007_NTSC },
+       { USB_DEVICE(0x07d0, 0x0003), .driver_info=DAZZLE_DVC_50_REV_1_NTSC },
+       { USB_DEVICE(0x07d0, 0x0004), .driver_info=DAZZLE_DVC_80_REV_1_PAL },
+       { USB_DEVICE(0x07d0, 0x0005), .driver_info=DAZZLE_DVC_90_REV_1_SECAM },
+       { USB_DEVICE(0x07f8, 0x9104), .driver_info=ESKAPE_LABS_MYTV2GO },
+       { USB_DEVICE(0x2304, 0x010d), .driver_info=PINNA_PCTV_USB_PAL },
+       { USB_DEVICE(0x2304, 0x0109), .driver_info=PINNA_PCTV_USB_SECAM },
+       { USB_DEVICE(0x2304, 0x0110), .driver_info=PINNA_PCTV_USB_PAL_FM },
+       { USB_DEVICE(0x2304, 0x0111), .driver_info=MIRO_PCTV_USB },
+       { USB_DEVICE(0x2304, 0x0112), .driver_info=PINNA_PCTV_USB_NTSC_FM },
+       { USB_DEVICE(0x2304, 0x0210), .driver_info=PINNA_PCTV_USB_PAL_FM_V2 },
+       { USB_DEVICE(0x2304, 0x0212), .driver_info=PINNA_PCTV_USB_NTSC_FM_V2 },
+       { USB_DEVICE(0x2304, 0x0214), .driver_info=PINNA_PCTV_USB_PAL_FM_V3 },
+       { USB_DEVICE(0x2304, 0x0300), .driver_info=PINNA_LINX_VD_IN_CAB_NTSC },
+       { USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
+       { USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
+       { USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
 
        { }  /* Terminating entry */
 };
diff --git a/drivers/media/video/usbvision/usbvision-cards.h b/drivers/media/video/usbvision/usbvision-cards.h
new file mode 100644 (file)
index 0000000..37d619b
--- /dev/null
@@ -0,0 +1,65 @@
+#define DUMMY_DEVICE                             0
+#define XANBOO                                   1
+#define BELKIN_VIDEOBUS_II                       2
+#define BELKIN_VIDEOBUS                          3
+#define BELKIN_USB_VIDEOBUS_II                   4
+#define ECHOFX_INTERVIEW_LITE                    5
+#define USBGEAR_USBG_V1                          6
+#define D_LINK_V100                              7
+#define X10_USB_CAMERA                           8
+#define HPG_WINTV_LIVE_PAL_BG                    9
+#define HPG_WINTV_LIVE_PRO_NTSC_MN               10
+#define ZORAN_PMD_NOGATECH                       11
+#define NOGATECH_USB_TV_NTSC_FM                  12
+#define PNY_USB_TV_NTSC_FM                       13
+#define PV_PLAYTV_USB_PRO_PAL_FM                 14
+#define ZT_721                                   15
+#define HPG_WINTV_NTSC_MN                        16
+#define HPG_WINTV_PAL_BG                         17
+#define HPG_WINTV_PAL_I                          18
+#define HPG_WINTV_PAL_SECAM_L                    19
+#define HPG_WINTV_PAL_D_K                        20
+#define HPG_WINTV_NTSC_FM                        21
+#define HPG_WINTV_PAL_BG_FM                      22
+#define HPG_WINTV_PAL_I_FM                       23
+#define HPG_WINTV_PAL_D_K_FM                     24
+#define HPG_WINTV_PRO_NTSC_MN                    25
+#define HPG_WINTV_PRO_NTSC_MN_V2                 26
+#define HPG_WINTV_PRO_PAL                        27
+#define HPG_WINTV_PRO_NTSC_MN_V3                 28
+#define HPG_WINTV_PRO_PAL_BG                     29
+#define HPG_WINTV_PRO_PAL_I                      30
+#define HPG_WINTV_PRO_PAL_SECAM_L                31
+#define HPG_WINTV_PRO_PAL_D_K                    32
+#define HPG_WINTV_PRO_PAL_SECAM                  33
+#define HPG_WINTV_PRO_PAL_SECAM_V2               34
+#define HPG_WINTV_PRO_PAL_BG_V2                  35
+#define HPG_WINTV_PRO_PAL_BG_D_K                 36
+#define HPG_WINTV_PRO_PAL_I_D_K                  37
+#define HPG_WINTV_PRO_NTSC_MN_FM                 38
+#define HPG_WINTV_PRO_PAL_BG_FM                  39
+#define HPG_WINTV_PRO_PAL_I_FM                   40
+#define HPG_WINTV_PRO_PAL_D_K_FM                 41
+#define HPG_WINTV_PRO_TEMIC_PAL_FM               42
+#define HPG_WINTV_PRO_TEMIC_PAL_BG_FM            43
+#define HPG_WINTV_PRO_PAL_FM                     44
+#define HPG_WINTV_PRO_NTSC_MN_FM_V2              45
+#define CAMTEL_TVB330                            46
+#define DIGITAL_VIDEO_CREATOR_I                  47
+#define GLOBAL_VILLAGE_GV_007_NTSC               48
+#define DAZZLE_DVC_50_REV_1_NTSC                 49
+#define DAZZLE_DVC_80_REV_1_PAL                  50
+#define DAZZLE_DVC_90_REV_1_SECAM                51
+#define ESKAPE_LABS_MYTV2GO                      52
+#define PINNA_PCTV_USB_PAL                       53
+#define PINNA_PCTV_USB_SECAM                     54
+#define PINNA_PCTV_USB_PAL_FM                    55
+#define MIRO_PCTV_USB                            56
+#define PINNA_PCTV_USB_NTSC_FM                   57
+#define PINNA_PCTV_USB_PAL_FM_V2                 58
+#define PINNA_PCTV_USB_NTSC_FM_V2                59
+#define PINNA_PCTV_USB_PAL_FM_V3                 60
+#define PINNA_LINX_VD_IN_CAB_NTSC                61
+#define PINNA_LINX_VD_IN_CAB_PAL                 62
+#define PINNA_PCTV_BUNGEE_PAL_FM                 63
+#define HPG_WINTV                                64
index 6fc1455..22c2889 100644 (file)
@@ -76,6 +76,7 @@
 #endif
 
 #include "usbvision.h"
+#include "usbvision-cards.h"
 
 #define DRIVER_AUTHOR "Joerg Heckenbach <joerg@heckenbach-aw.de>, Dwaine Garden <DwaineGarden@rogers.com>"
 #define DRIVER_NAME "usbvision"
@@ -1775,7 +1776,8 @@ static void usbvision_configure_video(struct usb_usbvision *usbvision)
  * if it looks like USBVISION video device
  *
  */
-static int __devinit usbvision_probe(struct usb_interface *intf, const struct usb_device_id *devid)
+static int __devinit usbvision_probe(struct usb_interface *intf,
+                                    const struct usb_device_id *devid)
 {
        struct usb_device *dev = usb_get_dev(interface_to_usbdev(intf));
        struct usb_interface *uif;
@@ -1786,25 +1788,13 @@ static int __devinit usbvision_probe(struct usb_interface *intf, const struct us
        int model,i;
 
        PDEBUG(DBG_PROBE, "VID=%#04x, PID=%#04x, ifnum=%u",
-                                       dev->descriptor.idVendor, dev->descriptor.idProduct, ifnum);
+                               dev->descriptor.idVendor,
+                               dev->descriptor.idProduct, ifnum);
 
-       /* Is it an USBVISION video dev? */
-       model = 0;
-       for(model = 0; usbvision_device_data[model].idVendor; model++) {
-               if (le16_to_cpu(dev->descriptor.idVendor) != usbvision_device_data[model].idVendor) {
-                       continue;
-               }
-               if (le16_to_cpu(dev->descriptor.idProduct) != usbvision_device_data[model].idProduct) {
-                       continue;
-               }
+       model = devid->driver_info;
+       printk(KERN_INFO "%s: %s found\n", __FUNCTION__,
+                               usbvision_device_data[model].ModelString);
 
-               printk(KERN_INFO "%s: %s found\n", __FUNCTION__, usbvision_device_data[model].ModelString);
-               break;
-       }
-
-       if (usbvision_device_data[model].idVendor == 0) {
-               return -ENODEV; //no matching device
-       }
        if (usbvision_device_data[model].Interface >= 0) {
                interface = &dev->actconfig->interface[usbvision_device_data[model].Interface]->altsetting[0];
        }
@@ -1828,10 +1818,11 @@ static int __devinit usbvision_probe(struct usb_interface *intf, const struct us
                err("%s: couldn't allocate USBVision struct", __FUNCTION__);
                return -ENOMEM;
        }
+
        if (dev->descriptor.bNumConfigurations > 1) {
                usbvision->bridgeType = BRIDGE_NT1004;
        }
-       else if (usbvision_device_data[model].ModelString == "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)") {
+       else if (model == DAZZLE_DVC_90_REV_1_SECAM) {
                usbvision->bridgeType = BRIDGE_NT1005;
        }
        else {
@@ -1958,6 +1949,8 @@ static struct usb_driver usbvision_driver = {
  */
 static void customdevice_process(void)
 {
+       unsigned int id_vend,id_prod;
+
        usbvision_device_data[0]=usbvision_device_data[1];
        usbvision_table[0]=usbvision_table[1];
 
@@ -1965,7 +1958,7 @@ static void customdevice_process(void)
        {
                char *parse=CustomDevice;
 
-               PDEBUG(DBG_PROBE, "CustomDevide=%s", CustomDevice);
+               PDEBUG(DBG_PROBE, "CustomDevice=%s", CustomDevice);
 
                /*format is CustomDevice="0x0573 0x4D31 0 7113 3 PAL 1 1 1 5 -1 -1 -1 -1 -1"
                usbvision_device_data[0].idVendor;
@@ -1990,13 +1983,16 @@ static void customdevice_process(void)
                usbvision_device_data[0].ModelString="USBVISION Custom Device";
 
                parse+=2;
-               sscanf(parse,"%x",&usbvision_device_data[0].idVendor);
+               sscanf(parse,"%u",&id_vend);
+               usbvision_table[0].idVendor=id_vend;
+
                goto2next(parse);
-               PDEBUG(DBG_PROBE, "idVendor=0x%.4X", usbvision_device_data[0].idVendor);
+               PDEBUG(DBG_PROBE, "idVendor=0x%.4X", usbvision_table[0].idVendor);
                parse+=2;
-               sscanf(parse,"%x",&usbvision_device_data[0].idProduct);
+               sscanf(parse,"%u",&id_prod);
+               usbvision_table[0].idProduct=id_prod;
                goto2next(parse);
-               PDEBUG(DBG_PROBE, "idProduct=0x%.4X", usbvision_device_data[0].idProduct);
+               PDEBUG(DBG_PROBE, "idProduct=0x%.4X", usbvision_table[0].idProduct);
                sscanf(parse,"%d",&usbvision_device_data[0].Interface);
                goto2next(parse);
                PDEBUG(DBG_PROBE, "Interface=%d", usbvision_device_data[0].Interface);
@@ -2060,9 +2056,6 @@ static void customdevice_process(void)
 
                //add to usbvision_table also
                usbvision_table[0].match_flags=USB_DEVICE_ID_MATCH_DEVICE;
-               usbvision_table[0].idVendor=usbvision_device_data[0].idVendor;
-               usbvision_table[0].idProduct=usbvision_device_data[0].idProduct;
-
        }
 }
 
index ad6afd3..4639f34 100644 (file)
@@ -342,8 +342,6 @@ struct usbvision_frame {
 #define BRIDGE_NT1005   1005
 
 struct usbvision_device_data_st {
-       int idVendor;
-       int idProduct;
        int Interface; /* to handle special interface number like BELKIN and Hauppauge WinTV-USB II */
        int Codec;
        int VideoChannels;