aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-04-14 14:09:59 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 14:45:32 -0400
commit659ae56dcd5a50e4560cb526a0e0dc881418dad4 (patch)
treea31e9662850d5db2203e7e6eb7896cbd5ef04c67 /drivers
parent2c4d336468b400f9a47d6c1785d230548b89ca24 (diff)
V4L/DVB (5515): Use a better format to represent usbvision supported boards
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/usbvision/usbvision-cards.c1305
-rw-r--r--drivers/media/video/usbvision/usbvision-cards.h65
-rw-r--r--drivers/media/video/usbvision/usbvision-video.c47
-rw-r--r--drivers/media/video/usbvision/usbvision.h2
4 files changed, 1258 insertions, 161 deletions
diff --git a/drivers/media/video/usbvision/usbvision-cards.c b/drivers/media/video/usbvision/usbvision-cards.c
index 78d2c845b363..c63048da9713 100644
--- a/drivers/media/video/usbvision/usbvision-cards.c
+++ b/drivers/media/video/usbvision/usbvision-cards.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * USBVISION.H 2 * usbvision-cards.c
3 * usbvision header file 3 * usbvision cards definition file
4 * 4 *
5 * Copyright (c) 1999-2005 Joerg Heckenbach <joerg@heckenbach-aw.de> 5 * Copyright (c) 1999-2005 Joerg Heckenbach <joerg@heckenbach-aw.de>
6 * 6 *
@@ -28,145 +28,1186 @@
28#include <media/v4l2-dev.h> 28#include <media/v4l2-dev.h>
29#include <media/tuner.h> 29#include <media/tuner.h>
30#include "usbvision.h" 30#include "usbvision.h"
31#include "usbvision-cards.h"
31 32
32/* Supported Devices: A table for usbvision.c*/ 33/* Supported Devices: A table for usbvision.c*/
33struct usbvision_device_data_st usbvision_device_data[] = { 34struct usbvision_device_data_st usbvision_device_data[] = {
34 {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"}, 35 [DUMMY_DEVICE] = {
35 {0x0a6f, 0x0400, -1, CODEC_SAA7113, 4, V4L2_STD_NTSC, 1, 0, 1, 0, 0, -1, -1, -1, -1, -1, "Xanboo"}, 36 .Interface = -1,
36 {0x050d, 0x0106, -1, CODEC_SAA7113, 2, V4L2_STD_PAL, 1, 0, 1, 0, 0, -1, -1, 0, 3, 7, "Belkin USB VideoBus II Adapter"}, 37 .Codec = CODEC_SAA7111,
37 {0x050d, 0x0207, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC, 1, 0, 1, 0, 0, -1, -1, -1, -1, -1, "Belkin Components USB VideoBus"}, 38 .VideoChannels = 3,
38 {0x050d, 0x0208, -1, CODEC_SAA7113, 2, V4L2_STD_PAL, 1, 0, 1, 0, 0, -1, -1, 0, 3, 7, "Belkin USB VideoBus II"}, 39 .VideoNorm = V4L2_STD_NTSC,
39 {0x0571, 0x0002, 0, CODEC_SAA7111, 2, V4L2_STD_PAL, 0, 0, 1, 0, 0, -1, -1, -1, -1, 7, "echoFX InterView Lite"}, 40 .AudioChannels = 1,
40 {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"}, 41 .Radio = 1,
41 {0x0573, 0x0400, -1, CODEC_SAA7113, 4, V4L2_STD_NTSC, 0, 0, 1, 0, 0, -1, -1, 0, 3, 7, "D-Link V100"}, 42 .vbi = 1,
42 {0x0573, 0x2000, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC, 1, 0, 1, 0, 0, -1, -1, -1, -1, -1, "X10 USB Camera"}, 43 .Tuner = 1,
43 {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)"}, 44 .TunerType = TUNER_PHILIPS_NTSC_M,
44 {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)"}, 45 .Vin_Reg1 = -1,
45 {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"}, 46 .Vin_Reg2 = -1,
46 {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"}, 47 .X_Offset = -1,
47 {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"}, 48 .Y_Offset = -1,
48 {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"}, 49 .Dvi_yuv = -1,
49 {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"}, 50 .ModelString = "Custom Dummy USBVision Device",
50 {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)"}, 51 },
51 {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)"}, 52 [XANBOO] = {
52 {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)"}, 53 .Interface = -1,
53 {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)"}, 54 .Codec = CODEC_SAA7113,
54 {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)"}, 55 .VideoChannels = 4,
55 {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)"}, 56 .VideoNorm = V4L2_STD_NTSC,
56 {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)"}, 57 .AudioChannels = 1,
57 {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)"}, 58 .Radio = 0,
58 {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)"}, 59 .vbi = 1,
59 {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)"}, 60 .Tuner = 0,
60 {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)"}, 61 .TunerType = 0,
61 {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)"}, 62 .Vin_Reg1 = -1,
62 {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)"}, 63 .Vin_Reg2 = -1,
63 {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)"}, 64 .X_Offset = -1,
64 {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)"}, 65 .Y_Offset = -1,
65 {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)"}, 66 .Dvi_yuv = -1,
66 {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)"}, 67 .ModelString = "Xanboo",
67 {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)"}, 68 },
68 {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)"}, 69 [BELKIN_VIDEOBUS_II] = {
69 {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)"}, 70 .Interface = -1,
70 {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)"}, 71 .Codec = CODEC_SAA7113,
71 {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)"}, 72 .VideoChannels = 2,
72 {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)"}, 73 .VideoNorm = V4L2_STD_PAL,
73 {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)"}, 74 .AudioChannels = 1,
74 {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)"}, 75 .Radio = 0,
75 {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)"}, 76 .vbi = 1,
76 {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)"}, 77 .Tuner = 0,
77 {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)"}, 78 .TunerType = 0,
78 {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)"}, 79 .Vin_Reg1 = -1,
79 {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)"}, 80 .Vin_Reg2 = -1,
80 {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"}, 81 .X_Offset = 0,
81 {0x07d0, 0x0001, -1, CODEC_SAA7113, 2, V4L2_STD_PAL, 0, 0, 1, 0, 0, -1, -1, 0, 3, 7, "Digital Video Creator I"}, 82 .Y_Offset = 3,
82 {0x07d0, 0x0002, -1, CODEC_SAA7111, 2, V4L2_STD_NTSC, 0, 0, 1, 0, 0, -1, -1, 82, 20, 7, "Global Village GV-007 (NTSC)"}, 83 .Dvi_yuv = 7,
83 {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)"}, 84 .ModelString = "Belkin USB VideoBus II Adapter",
84 {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)"}, 85 },
85 {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)"}, 86 [BELKIN_VIDEOBUS] = {
86 {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"}, 87 .Interface = -1,
87 {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)"}, 88 .Codec = CODEC_SAA7111,
88 {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)"}, 89 .VideoChannels = 2,
89 {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"}, 90 .VideoNorm = V4L2_STD_NTSC,
90 {0x2304, 0x0111, -1, CODEC_SAA7111, 3, V4L2_STD_PAL, 1, 0, 1, 1, TUNER_PHILIPS_PAL, -1, -1, -1, -1, -1, "Miro PCTV USB"}, 91 .AudioChannels = 1,
91 {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"}, 92 .Radio = 0,
92 {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"}, 93 .vbi = 1,
93 {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"}, 94 .Tuner = 0,
94 {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"}, 95 .TunerType = 0,
95 {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)"}, 96 .Vin_Reg1 = -1,
96 {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)"}, 97 .Vin_Reg2 = -1,
97 {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"}, 98 .X_Offset = -1,
98 {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"}, 99 .Y_Offset = -1,
100 .Dvi_yuv = -1,
101 .ModelString = "Belkin Components USB VideoBus",
102 },
103 [BELKIN_USB_VIDEOBUS_II] = {
104 .Interface = -1,
105 .Codec = CODEC_SAA7113,
106 .VideoChannels = 2,
107 .VideoNorm = V4L2_STD_PAL,
108 .AudioChannels = 1,
109 .Radio = 0,
110 .vbi = 1,
111 .Tuner = 0,
112 .TunerType = 0,
113 .Vin_Reg1 = -1,
114 .Vin_Reg2 = -1,
115 .X_Offset = 0,
116 .Y_Offset = 3,
117 .Dvi_yuv = 7,
118 .ModelString = "Belkin USB VideoBus II",
119 },
120 [ECHOFX_INTERVIEW_LITE] = {
121 .Interface = 0,
122 .Codec = CODEC_SAA7111,
123 .VideoChannels = 2,
124 .VideoNorm = V4L2_STD_PAL,
125 .AudioChannels = 0,
126 .Radio = 0,
127 .vbi = 1,
128 .Tuner = 0,
129 .TunerType = 0,
130 .Vin_Reg1 = -1,
131 .Vin_Reg2 = -1,
132 .X_Offset = -1,
133 .Y_Offset = -1,
134 .Dvi_yuv = 7,
135 .ModelString = "echoFX InterView Lite",
136 },
137 [USBGEAR_USBG_V1] = {
138 .Interface = -1,
139 .Codec = CODEC_SAA7111,
140 .VideoChannels = 2,
141 .VideoNorm = V4L2_STD_NTSC,
142 .AudioChannels = 1,
143 .Radio = 0,
144 .vbi = 1,
145 .Tuner = 0,
146 .TunerType = 0,
147 .Vin_Reg1 = -1,
148 .Vin_Reg2 = -1,
149 .X_Offset = -1,
150 .Y_Offset = -1,
151 .Dvi_yuv = -1,
152 .ModelString = "USBGear USBG-V1 resp. HAMA USB",
153 },
154 [D_LINK_V100] = {
155 .Interface = -1,
156 .Codec = CODEC_SAA7113,
157 .VideoChannels = 4,
158 .VideoNorm = V4L2_STD_NTSC,
159 .AudioChannels = 0,
160 .Radio = 0,
161 .vbi = 1,
162 .Tuner = 0,
163 .TunerType = 0,
164 .Vin_Reg1 = -1,
165 .Vin_Reg2 = -1,
166 .X_Offset = 0,
167 .Y_Offset = 3,
168 .Dvi_yuv = 7,
169 .ModelString = "D-Link V100",
170 },
171 [X10_USB_CAMERA] = {
172 .Interface = -1,
173 .Codec = CODEC_SAA7111,
174 .VideoChannels = 2,
175 .VideoNorm = V4L2_STD_NTSC,
176 .AudioChannels = 1,
177 .Radio = 0,
178 .vbi = 1,
179 .Tuner = 0,
180 .TunerType = 0,
181 .Vin_Reg1 = -1,
182 .Vin_Reg2 = -1,
183 .X_Offset = -1,
184 .Y_Offset = -1,
185 .Dvi_yuv = -1,
186 .ModelString = "X10 USB Camera",
187 },
188 [HPG_WINTV_LIVE_PAL_BG] = {
189 .Interface = -1,
190 .Codec = CODEC_SAA7111,
191 .VideoChannels = 2,
192 .VideoNorm = V4L2_STD_PAL,
193 .AudioChannels = 1,
194 .Radio = 0,
195 .vbi = 1,
196 .Tuner = 0,
197 .TunerType = 0,
198 .Vin_Reg1 = -1,
199 .Vin_Reg2 = -1,
200 .X_Offset = -1,
201 .Y_Offset = 3,
202 .Dvi_yuv = 7,
203 .ModelString = "Hauppauge WinTV USB Live (PAL B/G)",
204 },
205 [HPG_WINTV_LIVE_PRO_NTSC_MN] = {
206 .Interface = -1,
207 .Codec = CODEC_SAA7113,
208 .VideoChannels = 2,
209 .VideoNorm = V4L2_STD_NTSC,
210 .AudioChannels = 0,
211 .Radio = 0,
212 .vbi = 1,
213 .Tuner = 0,
214 .TunerType = 0,
215 .Vin_Reg1 = -1,
216 .Vin_Reg2 = -1,
217 .X_Offset = 0,
218 .Y_Offset = 3,
219 .Dvi_yuv = 7,
220 .ModelString = "Hauppauge WinTV USB Live Pro (NTSC M/N)",
221 },
222 [ZORAN_PMD_NOGATECH] = {
223 .Interface = -1,
224 .Codec = CODEC_SAA7113,
225 .VideoChannels = 2,
226 .VideoNorm = V4L2_STD_PAL,
227 .AudioChannels = 2,
228 .Radio = 0,
229 .vbi = 1,
230 .Tuner = 0,
231 .TunerType = 0,
232 .Vin_Reg1 = -1,
233 .Vin_Reg2 = -1,
234 .X_Offset = 0,
235 .Y_Offset = 3,
236 .Dvi_yuv = 7,
237 .ModelString = "Zoran Co. PMD (Nogatech) AV-grabber Manhattan",
238 },
239 [NOGATECH_USB_TV_NTSC_FM] = {
240 .Interface = -1,
241 .Codec = CODEC_SAA7111,
242 .VideoChannels = 3,
243 .VideoNorm = V4L2_STD_NTSC,
244 .AudioChannels = 1,
245 .Radio = 1,
246 .vbi = 1,
247 .Tuner = 1,
248 .TunerType = TUNER_PHILIPS_NTSC_M,
249 .Vin_Reg1 = -1,
250 .Vin_Reg2 = -1,
251 .X_Offset = -1,
252 .Y_Offset = 20,
253 .Dvi_yuv = -1,
254 .ModelString = "Nogatech USB-TV (NTSC) FM",
255 },
256 [PNY_USB_TV_NTSC_FM] = {
257 .Interface = -1,
258 .Codec = CODEC_SAA7111,
259 .VideoChannels = 3,
260 .VideoNorm = V4L2_STD_NTSC,
261 .AudioChannels = 1,
262 .Radio = 1,
263 .vbi = 1,
264 .Tuner = 1,
265 .TunerType = TUNER_PHILIPS_NTSC_M,
266 .Vin_Reg1 = -1,
267 .Vin_Reg2 = -1,
268 .X_Offset = -1,
269 .Y_Offset = 20,
270 .Dvi_yuv = -1,
271 .ModelString = "PNY USB-TV (NTSC) FM",
272 },
273 [PV_PLAYTV_USB_PRO_PAL_FM] = {
274 .Interface = 0,
275 .Codec = CODEC_SAA7113,
276 .VideoChannels = 3,
277 .VideoNorm = V4L2_STD_PAL,
278 .AudioChannels = 1,
279 .Radio = 1,
280 .vbi = 1,
281 .Tuner = 1,
282 .TunerType = TUNER_PHILIPS_PAL,
283 .Vin_Reg1 = -1,
284 .Vin_Reg2 = -1,
285 .X_Offset = 0,
286 .Y_Offset = 3,
287 .Dvi_yuv = 7,
288 .ModelString = "PixelView PlayTv-USB PRO (PAL) FM",
289 },
290 [ZT_721] = {
291 .Interface = 0,
292 .Codec = CODEC_SAA7113,
293 .VideoChannels = 3,
294 .VideoNorm = V4L2_STD_PAL,
295 .AudioChannels = 1,
296 .Radio = 1,
297 .vbi = 1,
298 .Tuner = 1,
299 .TunerType = TUNER_PHILIPS_PAL,
300 .Vin_Reg1 = -1,
301 .Vin_Reg2 = -1,
302 .X_Offset = 0,
303 .Y_Offset = 3,
304 .Dvi_yuv = 7,
305 .ModelString = "ZTV ZT-721 2.4GHz USB A/V Receiver",
306 },
307 [HPG_WINTV_NTSC_MN] = {
308 .Interface = -1,
309 .Codec = CODEC_SAA7111,
310 .VideoChannels = 3,
311 .VideoNorm = V4L2_STD_NTSC,
312 .AudioChannels = 1,
313 .Radio = 0,
314 .vbi = 1,
315 .Tuner = 1,
316 .TunerType = TUNER_PHILIPS_NTSC_M,
317 .Vin_Reg1 = -1,
318 .Vin_Reg2 = -1,
319 .X_Offset = -1,
320 .Y_Offset = 20,
321 .Dvi_yuv = -1,
322 .ModelString = "Hauppauge WinTV USB (NTSC M/N)",
323 },
324 [HPG_WINTV_PAL_BG] = {
325 .Interface = -1,
326 .Codec = CODEC_SAA7111,
327 .VideoChannels = 3,
328 .VideoNorm = V4L2_STD_PAL,
329 .AudioChannels = 1,
330 .Radio = 0,
331 .vbi = 1,
332 .Tuner = 1,
333 .TunerType = TUNER_PHILIPS_PAL,
334 .Vin_Reg1 = -1,
335 .Vin_Reg2 = -1,
336 .X_Offset = -1,
337 .Y_Offset = -1,
338 .Dvi_yuv = -1,
339 .ModelString = "Hauppauge WinTV USB (PAL B/G)",
340 },
341 [HPG_WINTV_PAL_I] = {
342 .Interface = -1,
343 .Codec = CODEC_SAA7111,
344 .VideoChannels = 3,
345 .VideoNorm = V4L2_STD_PAL,
346 .AudioChannels = 1,
347 .Radio = 0,
348 .vbi = 1,
349 .Tuner = 1,
350 .TunerType = TUNER_PHILIPS_PAL,
351 .Vin_Reg1 = -1,
352 .Vin_Reg2 = -1,
353 .X_Offset = -1,
354 .Y_Offset = -1,
355 .Dvi_yuv = -1,
356 .ModelString = "Hauppauge WinTV USB (PAL I)",
357 },
358 [HPG_WINTV_PAL_SECAM_L] = {
359 .Interface = -1,
360 .Codec = CODEC_SAA7111,
361 .VideoChannels = 3,
362 .VideoNorm = V4L2_STD_SECAM,
363 .AudioChannels = 1,
364 .Radio = 0,
365 .vbi = 1,
366 .Tuner = 1,
367 .TunerType = TUNER_PHILIPS_SECAM,
368 .Vin_Reg1 = -1,
369 .Vin_Reg2 = -1,
370 .X_Offset = -1,
371 .Y_Offset = -1,
372 .Dvi_yuv = -1,
373 .ModelString = "Hauppauge WinTV USB (PAL/SECAM L)",
374 },
375 [HPG_WINTV_PAL_D_K] = {
376 .Interface = -1,
377 .Codec = CODEC_SAA7111,
378 .VideoChannels = 3,
379 .VideoNorm = V4L2_STD_PAL,
380 .AudioChannels = 1,
381 .Radio = 0,
382 .vbi = 1,
383 .Tuner = 1,
384 .TunerType = TUNER_PHILIPS_PAL,
385 .Vin_Reg1 = -1,
386 .Vin_Reg2 = -1,
387 .X_Offset = -1,
388 .Y_Offset = -1,
389 .Dvi_yuv = -1,
390 .ModelString = "Hauppauge WinTV USB (PAL D/K)",
391 },
392 [HPG_WINTV_NTSC_FM] = {
393 .Interface = -1,
394 .Codec = CODEC_SAA7111,
395 .VideoChannels = 3,
396 .VideoNorm = V4L2_STD_NTSC,
397 .AudioChannels = 1,
398 .Radio = 1,
399 .vbi = 1,
400 .Tuner = 1,
401 .TunerType = TUNER_PHILIPS_NTSC_M,
402 .Vin_Reg1 = -1,
403 .Vin_Reg2 = -1,
404 .X_Offset = -1,
405 .Y_Offset = -1,
406 .Dvi_yuv = -1,
407 .ModelString = "Hauppauge WinTV USB (NTSC FM)",
408 },
409 [HPG_WINTV_PAL_BG_FM] = {
410 .Interface = -1,
411 .Codec = CODEC_SAA7111,
412 .VideoChannels = 3,
413 .VideoNorm = V4L2_STD_PAL,
414 .AudioChannels = 1,
415 .Radio = 1,
416 .vbi = 1,
417 .Tuner = 1,
418 .TunerType = TUNER_PHILIPS_PAL,
419 .Vin_Reg1 = -1,
420 .Vin_Reg2 = -1,
421 .X_Offset = -1,
422 .Y_Offset = -1,
423 .Dvi_yuv = -1,
424 .ModelString = "Hauppauge WinTV USB (PAL B/G FM)",
425 },
426 [HPG_WINTV_PAL_I_FM] = {
427 .Interface = -1,
428 .Codec = CODEC_SAA7111,
429 .VideoChannels = 3,
430 .VideoNorm = V4L2_STD_PAL,
431 .AudioChannels = 1,
432 .Radio = 1,
433 .vbi = 1,
434 .Tuner = 1,
435 .TunerType = TUNER_PHILIPS_PAL,
436 .Vin_Reg1 = -1,
437 .Vin_Reg2 = -1,
438 .X_Offset = -1,
439 .Y_Offset = -1,
440 .Dvi_yuv = -1,
441 .ModelString = "Hauppauge WinTV USB (PAL I FM)",
442 },
443 [HPG_WINTV_PAL_D_K_FM] = {
444 .Interface = -1,
445 .Codec = CODEC_SAA7111,
446 .VideoChannels = 3,
447 .VideoNorm = V4L2_STD_PAL,
448 .AudioChannels = 1,
449 .Radio = 1,
450 .vbi = 1,
451 .Tuner = 1,
452 .TunerType = TUNER_PHILIPS_PAL,
453 .Vin_Reg1 = -1,
454 .Vin_Reg2 = -1,
455 .X_Offset = -1,
456 .Y_Offset = -1,
457 .Dvi_yuv = -1,
458 .ModelString = "Hauppauge WinTV USB (PAL D/K FM)",
459 },
460 [HPG_WINTV_PRO_NTSC_MN] = {
461 .Interface = 0,
462 .Codec = CODEC_SAA7113,
463 .VideoChannels = 3,
464 .VideoNorm = V4L2_STD_NTSC,
465 .AudioChannels = 1,
466 .Radio = 1,
467 .vbi = 1,
468 .Tuner = 1,
469 .TunerType = TUNER_MICROTUNE_4049FM5,
470 .Vin_Reg1 = -1,
471 .Vin_Reg2 = -1,
472 .X_Offset = 0,
473 .Y_Offset = 3,
474 .Dvi_yuv = 7,
475 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N)",
476 },
477 [HPG_WINTV_PRO_NTSC_MN_V2] = {
478 .Interface = 0,
479 .Codec = CODEC_SAA7113,
480 .VideoChannels = 3,
481 .VideoNorm = V4L2_STD_NTSC,
482 .AudioChannels = 1,
483 .Radio = 1,
484 .vbi = 1,
485 .Tuner = 1,
486 .TunerType = TUNER_MICROTUNE_4049FM5,
487 .Vin_Reg1 = -1,
488 .Vin_Reg2 = -1,
489 .X_Offset = 0,
490 .Y_Offset = 3,
491 .Dvi_yuv = 7,
492 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N) V2",
493 },
494 [HPG_WINTV_PRO_PAL] = {
495 .Interface = 0,
496 .Codec = CODEC_SAA7113,
497 .VideoChannels = 3,
498 .VideoNorm = V4L2_STD_PAL,
499 .AudioChannels = 1,
500 .Radio = 0,
501 .vbi = 1,
502 .Tuner = 1,
503 .TunerType = TUNER_PHILIPS_FM1216ME_MK3,
504 .Vin_Reg1 = -1,
505 .Vin_Reg2 = -1,
506 .X_Offset = 0,
507 .Y_Offset = 3,
508 .Dvi_yuv = 7,
509 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)",
510 },
511 [HPG_WINTV_PRO_NTSC_MN_V3] = {
512 .Interface = 0,
513 .Codec = CODEC_SAA7113,
514 .VideoChannels = 3,
515 .VideoNorm = V4L2_STD_NTSC,
516 .AudioChannels = 1,
517 .Radio = 1,
518 .vbi = 1,
519 .Tuner = 1,
520 .TunerType = TUNER_PHILIPS_NTSC_M,
521 .Vin_Reg1 = -1,
522 .Vin_Reg2 = -1,
523 .X_Offset = 0,
524 .Y_Offset = 3,
525 .Dvi_yuv = 7,
526 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N) V3",
527 },
528 [HPG_WINTV_PRO_PAL_BG] = {
529 .Interface = 0,
530 .Codec = CODEC_SAA7113,
531 .VideoChannels = 3,
532 .VideoNorm = V4L2_STD_PAL,
533 .AudioChannels = 1,
534 .Radio = 0,
535 .vbi = 1,
536 .Tuner = 1,
537 .TunerType = TUNER_PHILIPS_PAL,
538 .Vin_Reg1 = -1,
539 .Vin_Reg2 = -1,
540 .X_Offset = 0,
541 .Y_Offset = 3,
542 .Dvi_yuv = 7,
543 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G)",
544 },
545 [HPG_WINTV_PRO_PAL_I] = {
546 .Interface = 0,
547 .Codec = CODEC_SAA7113,
548 .VideoChannels = 3,
549 .VideoNorm = V4L2_STD_PAL,
550 .AudioChannels = 1,
551 .Radio = 0,
552 .vbi = 1,
553 .Tuner = 1,
554 .TunerType = TUNER_PHILIPS_PAL,
555 .Vin_Reg1 = -1,
556 .Vin_Reg2 = -1,
557 .X_Offset = 0,
558 .Y_Offset = 3,
559 .Dvi_yuv = 7,
560 .ModelString = "Hauppauge WinTV USB Pro (PAL I)",
561 },
562 [HPG_WINTV_PRO_PAL_SECAM_L] = {
563 .Interface = -1,
564 .Codec = CODEC_SAA7113,
565 .VideoChannels = 3,
566 .VideoNorm = V4L2_STD_SECAM,
567 .AudioChannels = 1,
568 .Radio = 0,
569 .vbi = 1,
570 .Tuner = 1,
571 .TunerType = TUNER_PHILIPS_SECAM,
572 .Vin_Reg1 = -1,
573 .Vin_Reg2 = -1,
574 .X_Offset = 0,
575 .Y_Offset = 3,
576 .Dvi_yuv = 7,
577 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM L)",
578 },
579 [HPG_WINTV_PRO_PAL_D_K] = {
580 .Interface = -1,
581 .Codec = CODEC_SAA7113,
582 .VideoChannels = 3,
583 .VideoNorm = V4L2_STD_PAL,
584 .AudioChannels = 1,
585 .Radio = 0,
586 .vbi = 1,
587 .Tuner = 1,
588 .TunerType = TUNER_PHILIPS_PAL,
589 .Vin_Reg1 = -1,
590 .Vin_Reg2 = -1,
591 .X_Offset = 0,
592 .Y_Offset = 3,
593 .Dvi_yuv = 7,
594 .ModelString = "Hauppauge WinTV USB Pro (PAL D/K)",
595 },
596 [HPG_WINTV_PRO_PAL_SECAM] = {
597 .Interface = -1,
598 .Codec = CODEC_SAA7113,
599 .VideoChannels = 3,
600 .VideoNorm = V4L2_STD_SECAM,
601 .AudioChannels = 1,
602 .Radio = 0,
603 .vbi = 1,
604 .Tuner = 1,
605 .TunerType = TUNER_PHILIPS_SECAM,
606 .Vin_Reg1 = -1,
607 .Vin_Reg2 = -1,
608 .X_Offset = 0,
609 .Y_Offset = 3,
610 .Dvi_yuv = 7,
611 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)",
612 },
613 [HPG_WINTV_PRO_PAL_SECAM_V2] = {
614 .Interface = -1,
615 .Codec = CODEC_SAA7113,
616 .VideoChannels = 3,
617 .VideoNorm = V4L2_STD_SECAM,
618 .AudioChannels = 1,
619 .Radio = 0,
620 .vbi = 1,
621 .Tuner = 1,
622 .TunerType = TUNER_PHILIPS_SECAM,
623 .Vin_Reg1 = -1,
624 .Vin_Reg2 = -1,
625 .X_Offset = 0,
626 .Y_Offset = 3,
627 .Dvi_yuv = 7,
628 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2",
629 },
630 [HPG_WINTV_PRO_PAL_BG_V2] = {
631 .Interface = -1,
632 .Codec = CODEC_SAA7113,
633 .VideoChannels = 3,
634 .VideoNorm = V4L2_STD_PAL,
635 .AudioChannels = 1,
636 .Radio = 0,
637 .vbi = 1,
638 .Tuner = 1,
639 .TunerType = TUNER_ALPS_TSBE1_PAL,
640 .Vin_Reg1 = -1,
641 .Vin_Reg2 = -1,
642 .X_Offset = 0,
643 .Y_Offset = 3,
644 .Dvi_yuv = 7,
645 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G) V2",
646 },
647 [HPG_WINTV_PRO_PAL_BG_D_K] = {
648 .Interface = -1,
649 .Codec = CODEC_SAA7113,
650 .VideoChannels = 3,
651 .VideoNorm = V4L2_STD_PAL,
652 .AudioChannels = 1,
653 .Radio = 0,
654 .vbi = 1,
655 .Tuner = 1,
656 .TunerType = TUNER_ALPS_TSBE1_PAL,
657 .Vin_Reg1 = -1,
658 .Vin_Reg2 = -1,
659 .X_Offset = 0,
660 .Y_Offset = 3,
661 .Dvi_yuv = 7,
662 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G,D/K)",
663 },
664 [HPG_WINTV_PRO_PAL_I_D_K] = {
665 .Interface = -1,
666 .Codec = CODEC_SAA7113,
667 .VideoChannels = 3,
668 .VideoNorm = V4L2_STD_PAL,
669 .AudioChannels = 1,
670 .Radio = 0,
671 .vbi = 1,
672 .Tuner = 1,
673 .TunerType = TUNER_PHILIPS_PAL,
674 .Vin_Reg1 = -1,
675 .Vin_Reg2 = -1,
676 .X_Offset = 0,
677 .Y_Offset = 3,
678 .Dvi_yuv = 7,
679 .ModelString = "Hauppauge WinTV USB Pro (PAL I,D/K)",
680 },
681 [HPG_WINTV_PRO_NTSC_MN_FM] = {
682 .Interface = -1,
683 .Codec = CODEC_SAA7113,
684 .VideoChannels = 3,
685 .VideoNorm = V4L2_STD_NTSC,
686 .AudioChannels = 1,
687 .Radio = 1,
688 .vbi = 1,
689 .Tuner = 1,
690 .TunerType = TUNER_PHILIPS_NTSC_M,
691 .Vin_Reg1 = -1,
692 .Vin_Reg2 = -1,
693 .X_Offset = 0,
694 .Y_Offset = 3,
695 .Dvi_yuv = 7,
696 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N FM)",
697 },
698 [HPG_WINTV_PRO_PAL_BG_FM] = {
699 .Interface = 0,
700 .Codec = CODEC_SAA7113,
701 .VideoChannels = 3,
702 .VideoNorm = V4L2_STD_PAL,
703 .AudioChannels = 1,
704 .Radio = 1,
705 .vbi = 1,
706 .Tuner = 1,
707 .TunerType = TUNER_PHILIPS_PAL,
708 .Vin_Reg1 = -1,
709 .Vin_Reg2 = -1,
710 .X_Offset = 0,
711 .Y_Offset = 3,
712 .Dvi_yuv = 7,
713 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G FM)",
714 },
715 [HPG_WINTV_PRO_PAL_I_FM] = {
716 .Interface = 0,
717 .Codec = CODEC_SAA7113,
718 .VideoChannels = 3,
719 .VideoNorm = V4L2_STD_PAL,
720 .AudioChannels = 1,
721 .Radio = 1,
722 .vbi = 1,
723 .Tuner = 1,
724 .TunerType = TUNER_PHILIPS_PAL,
725 .Vin_Reg1 = -1,
726 .Vin_Reg2 = -1,
727 .X_Offset = 0,
728 .Y_Offset = 3,
729 .Dvi_yuv = 7,
730 .ModelString = "Hauppauge WinTV USB Pro (PAL I FM)",
731 },
732 [HPG_WINTV_PRO_PAL_D_K_FM] = {
733 .Interface = 0,
734 .Codec = CODEC_SAA7113,
735 .VideoChannels = 3,
736 .VideoNorm = V4L2_STD_PAL,
737 .AudioChannels = 1,
738 .Radio = 1,
739 .vbi = 1,
740 .Tuner = 1,
741 .TunerType = TUNER_PHILIPS_PAL,
742 .Vin_Reg1 = -1,
743 .Vin_Reg2 = -1,
744 .X_Offset = 0,
745 .Y_Offset = 3,
746 .Dvi_yuv = 7,
747 .ModelString = "Hauppauge WinTV USB Pro (PAL D/K FM)",
748 },
749 [HPG_WINTV_PRO_TEMIC_PAL_FM] = {
750 .Interface = 0,
751 .Codec = CODEC_SAA7113,
752 .VideoChannels = 3,
753 .VideoNorm = V4L2_STD_PAL,
754 .AudioChannels = 1,
755 .Radio = 1,
756 .vbi = 1,
757 .Tuner = 1,
758 .TunerType = TUNER_MICROTUNE_4049FM5,
759 .Vin_Reg1 = -1,
760 .Vin_Reg2 = -1,
761 .X_Offset = 0,
762 .Y_Offset = 3,
763 .Dvi_yuv = 7,
764 .ModelString = "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)",
765 },
766 [HPG_WINTV_PRO_TEMIC_PAL_BG_FM] = {
767 .Interface = 0,
768 .Codec = CODEC_SAA7113,
769 .VideoChannels = 3,
770 .VideoNorm = V4L2_STD_PAL,
771 .AudioChannels = 1,
772 .Radio = 1,
773 .vbi = 1,
774 .Tuner = 1,
775 .TunerType = TUNER_MICROTUNE_4049FM5,
776 .Vin_Reg1 = -1,
777 .Vin_Reg2 = -1,
778 .X_Offset = 0,
779 .Y_Offset = 3,
780 .Dvi_yuv = 7,
781 .ModelString = "Hauppauge WinTV USB Pro (Temic PAL B/G FM)",
782 },
783 [HPG_WINTV_PRO_PAL_FM] = {
784 .Interface = 0,
785 .Codec = CODEC_SAA7113,
786 .VideoChannels = 3,
787 .VideoNorm = V4L2_STD_PAL,
788 .AudioChannels = 1,
789 .Radio = 1,
790 .vbi = 1,
791 .Tuner = 1,
792 .TunerType = TUNER_PHILIPS_FM1216ME_MK3,
793 .Vin_Reg1 = -1,
794 .Vin_Reg2 = -1,
795 .X_Offset = 0,
796 .Y_Offset = 3,
797 .Dvi_yuv = 7,
798 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)",
799 },
800 [HPG_WINTV_PRO_NTSC_MN_FM_V2] = {
801 .Interface = 0,
802 .Codec = CODEC_SAA7113,
803 .VideoChannels = 3,
804 .VideoNorm = V4L2_STD_NTSC,
805 .AudioChannels = 1,
806 .Radio = 1,
807 .vbi = 1,
808 .Tuner = 1,
809 .TunerType = TUNER_PHILIPS_NTSC_M,
810 .Vin_Reg1 = -1,
811 .Vin_Reg2 = -1,
812 .X_Offset = 0,
813 .Y_Offset = 3,
814 .Dvi_yuv = 7,
815 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N FM) V2",
816 },
817 [CAMTEL_TVB330] = {
818 .Interface = -1,
819 .Codec = CODEC_SAA7113,
820 .VideoChannels = 3,
821 .VideoNorm = V4L2_STD_NTSC,
822 .AudioChannels = 1,
823 .Radio = 1,
824 .vbi = 1,
825 .Tuner = 1,
826 .TunerType = TUNER_PHILIPS_NTSC_M,
827 .Vin_Reg1 = -1,
828 .Vin_Reg2 = -1,
829 .X_Offset = 5,
830 .Y_Offset = 5,
831 .Dvi_yuv = -1,
832 .ModelString = "Camtel Technology USB TV Genie Pro FM Model TVB330",
833 },
834 [DIGITAL_VIDEO_CREATOR_I] = {
835 .Interface = -1,
836 .Codec = CODEC_SAA7113,
837 .VideoChannels = 2,
838 .VideoNorm = V4L2_STD_PAL,
839 .AudioChannels = 0,
840 .Radio = 0,
841 .vbi = 1,
842 .Tuner = 0,
843 .TunerType = 0,
844 .Vin_Reg1 = -1,
845 .Vin_Reg2 = -1,
846 .X_Offset = 0,
847 .Y_Offset = 3,
848 .Dvi_yuv = 7,
849 .ModelString = "Digital Video Creator I",
850 },
851 [GLOBAL_VILLAGE_GV_007_NTSC] = {
852 .Interface = -1,
853 .Codec = CODEC_SAA7111,
854 .VideoChannels = 2,
855 .VideoNorm = V4L2_STD_NTSC,
856 .AudioChannels = 0,
857 .Radio = 0,
858 .vbi = 1,
859 .Tuner = 0,
860 .TunerType = 0,
861 .Vin_Reg1 = -1,
862 .Vin_Reg2 = -1,
863 .X_Offset = 82,
864 .Y_Offset = 20,
865 .Dvi_yuv = 7,
866 .ModelString = "Global Village GV-007 (NTSC)",
867 },
868 [DAZZLE_DVC_50_REV_1_NTSC] = {
869 .Interface = 0,
870 .Codec = CODEC_SAA7113,
871 .VideoChannels = 2,
872 .VideoNorm = V4L2_STD_NTSC,
873 .AudioChannels = 0,
874 .Radio = 0,
875 .vbi = 1,
876 .Tuner = 0,
877 .TunerType = 0,
878 .Vin_Reg1 = -1,
879 .Vin_Reg2 = -1,
880 .X_Offset = 0,
881 .Y_Offset = 3,
882 .Dvi_yuv = 7,
883 .ModelString = "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)",
884 },
885 [DAZZLE_DVC_80_REV_1_PAL] = {
886 .Interface = 0,
887 .Codec = CODEC_SAA7113,
888 .VideoChannels = 2,
889 .VideoNorm = V4L2_STD_PAL,
890 .AudioChannels = 0,
891 .Radio = 0,
892 .vbi = 1,
893 .Tuner = 0,
894 .TunerType = 0,
895 .Vin_Reg1 = -1,
896 .Vin_Reg2 = -1,
897 .X_Offset = 0,
898 .Y_Offset = 3,
899 .Dvi_yuv = 7,
900 .ModelString = "Dazzle Fusion Model DVC-80 Rev 1 (PAL)",
901 },
902 [DAZZLE_DVC_90_REV_1_SECAM] = {
903 .Interface = 0,
904 .Codec = CODEC_SAA7113,
905 .VideoChannels = 2,
906 .VideoNorm = V4L2_STD_SECAM,
907 .AudioChannels = 0,
908 .Radio = 0,
909 .vbi = 1,
910 .Tuner = 0,
911 .TunerType = 0,
912 .Vin_Reg1 = -1,
913 .Vin_Reg2 = -1,
914 .X_Offset = 0,
915 .Y_Offset = 3,
916 .Dvi_yuv = 7,
917 .ModelString = "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)",
918 },
919 [ESKAPE_LABS_MYTV2GO] = {
920 .Interface = 0,
921 .Codec = CODEC_SAA7113,
922 .VideoChannels = 2,
923 .VideoNorm = V4L2_STD_PAL,
924 .AudioChannels = 1,
925 .Radio = 1,
926 .vbi = 1,
927 .Tuner = 1,
928 .TunerType = TUNER_PHILIPS_FM1216ME_MK3,
929 .Vin_Reg1 = -1,
930 .Vin_Reg2 = -1,
931 .X_Offset = 0,
932 .Y_Offset = 3,
933 .Dvi_yuv = 7,
934 .ModelString = "Eskape Labs MyTV2Go",
935 },
936 [PINNA_PCTV_USB_PAL] = {
937 .Interface = -1,
938 .Codec = CODEC_SAA7111,
939 .VideoChannels = 3,
940 .VideoNorm = V4L2_STD_PAL,
941 .AudioChannels = 1,
942 .Radio = 0,
943 .vbi = 0,
944 .Tuner = 1,
945 .TunerType = TUNER_TEMIC_4066FY5_PAL_I,
946 .Vin_Reg1 = -1,
947 .Vin_Reg2 = -1,
948 .X_Offset = -1,
949 .Y_Offset = -1,
950 .Dvi_yuv = -1,
951 .ModelString = "Pinnacle Studio PCTV USB (PAL)",
952 },
953 [PINNA_PCTV_USB_SECAM] = {
954 .Interface = -1,
955 .Codec = CODEC_SAA7111,
956 .VideoChannels = 3,
957 .VideoNorm = V4L2_STD_SECAM,
958 .AudioChannels = 1,
959 .Radio = 0,
960 .vbi = 1,
961 .Tuner = 1,
962 .TunerType = TUNER_PHILIPS_SECAM,
963 .Vin_Reg1 = -1,
964 .Vin_Reg2 = -1,
965 .X_Offset = -1,
966 .Y_Offset = -1,
967 .Dvi_yuv = -1,
968 .ModelString = "Pinnacle Studio PCTV USB (SECAM)",
969 },
970 [PINNA_PCTV_USB_PAL_FM] = {
971 .Interface = -1,
972 .Codec = CODEC_SAA7111,
973 .VideoChannels = 3,
974 .VideoNorm = V4L2_STD_PAL,
975 .AudioChannels = 1,
976 .Radio = 1,
977 .vbi = 1,
978 .Tuner = 1,
979 .TunerType = TUNER_PHILIPS_PAL,
980 .Vin_Reg1 = -1,
981 .Vin_Reg2 = -1,
982 .X_Offset = 128,
983 .Y_Offset = 23,
984 .Dvi_yuv = -1,
985 .ModelString = "Pinnacle Studio PCTV USB (PAL) FM",
986 },
987 [MIRO_PCTV_USB] = {
988 .Interface = -1,
989 .Codec = CODEC_SAA7111,
990 .VideoChannels = 3,
991 .VideoNorm = V4L2_STD_PAL,
992 .AudioChannels = 1,
993 .Radio = 0,
994 .vbi = 1,
995 .Tuner = 1,
996 .TunerType = TUNER_PHILIPS_PAL,
997 .Vin_Reg1 = -1,
998 .Vin_Reg2 = -1,
999 .X_Offset = -1,
1000 .Y_Offset = -1,
1001 .Dvi_yuv = -1,
1002 .ModelString = "Miro PCTV USB",
1003 },
1004 [PINNA_PCTV_USB_NTSC_FM] = {
1005 .Interface = -1,
1006 .Codec = CODEC_SAA7111,
1007 .VideoChannels = 3,
1008 .VideoNorm = V4L2_STD_NTSC,
1009 .AudioChannels = 1,
1010 .Radio = 1,
1011 .vbi = 1,
1012 .Tuner = 1,
1013 .TunerType = TUNER_PHILIPS_NTSC_M,
1014 .Vin_Reg1 = -1,
1015 .Vin_Reg2 = -1,
1016 .X_Offset = -1,
1017 .Y_Offset = -1,
1018 .Dvi_yuv = -1,
1019 .ModelString = "Pinnacle Studio PCTV USB (NTSC) FM",
1020 },
1021 [PINNA_PCTV_USB_PAL_FM_V2] = {
1022 .Interface = -1,
1023 .Codec = CODEC_SAA7113,
1024 .VideoChannels = 3,
1025 .VideoNorm = V4L2_STD_PAL,
1026 .AudioChannels = 1,
1027 .Radio = 1,
1028 .vbi = 1,
1029 .Tuner = 1,
1030 .TunerType = TUNER_TEMIC_4009FR5_PAL,
1031 .Vin_Reg1 = -1,
1032 .Vin_Reg2 = -1,
1033 .X_Offset = 0,
1034 .Y_Offset = 3,
1035 .Dvi_yuv = 7,
1036 .ModelString = "Pinnacle Studio PCTV USB (PAL) FM V2",
1037 },
1038 [PINNA_PCTV_USB_NTSC_FM_V2] = {
1039 .Interface = -1,
1040 .Codec = CODEC_SAA7111,
1041 .VideoChannels = 3,
1042 .VideoNorm = V4L2_STD_NTSC,
1043 .AudioChannels = 1,
1044 .Radio = 1,
1045 .vbi = 1,
1046 .Tuner = 1,
1047 .TunerType = TUNER_TEMIC_4039FR5_NTSC,
1048 .Vin_Reg1 = -1,
1049 .Vin_Reg2 = -1,
1050 .X_Offset = 0,
1051 .Y_Offset = 3,
1052 .Dvi_yuv = 7,
1053 .ModelString = "Pinnacle Studio PCTV USB (NTSC) FM V2",
1054 },
1055 [PINNA_PCTV_USB_PAL_FM_V3] = {
1056 .Interface = -1,
1057 .Codec = CODEC_SAA7113,
1058 .VideoChannels = 3,
1059 .VideoNorm = V4L2_STD_PAL,
1060 .AudioChannels = 1,
1061 .Radio = 1,
1062 .vbi = 1,
1063 .Tuner = 1,
1064 .TunerType = TUNER_TEMIC_4009FR5_PAL,
1065 .Vin_Reg1 = -1,
1066 .Vin_Reg2 = -1,
1067 .X_Offset = 0,
1068 .Y_Offset = 3,
1069 .Dvi_yuv = 7,
1070 .ModelString = "Pinnacle Studio PCTV USB (PAL) FM V3",
1071 },
1072 [PINNA_LINX_VD_IN_CAB_NTSC] = {
1073 .Interface = -1,
1074 .Codec = CODEC_SAA7113,
1075 .VideoChannels = 2,
1076 .VideoNorm = V4L2_STD_NTSC,
1077 .AudioChannels = 1,
1078 .Radio = 0,
1079 .vbi = 1,
1080 .Tuner = 0,
1081 .TunerType = 0,
1082 .Vin_Reg1 = -1,
1083 .Vin_Reg2 = -1,
1084 .X_Offset = 0,
1085 .Y_Offset = 3,
1086 .Dvi_yuv = 7,
1087 .ModelString = "Pinnacle Studio Linx Video input cable (NTSC)",
1088 },
1089 [PINNA_LINX_VD_IN_CAB_PAL] = {
1090 .Interface = -1,
1091 .Codec = CODEC_SAA7113,
1092 .VideoChannels = 2,
1093 .VideoNorm = V4L2_STD_PAL,
1094 .AudioChannels = 1,
1095 .Radio = 0,
1096 .vbi = 1,
1097 .Tuner = 0,
1098 .TunerType = 0,
1099 .Vin_Reg1 = -1,
1100 .Vin_Reg2 = -1,
1101 .X_Offset = 0,
1102 .Y_Offset = 3,
1103 .Dvi_yuv = 7,
1104 .ModelString = "Pinnacle Studio Linx Video input cable (PAL)",
1105 },
1106 [PINNA_PCTV_BUNGEE_PAL_FM] = {
1107 .Interface = -1,
1108 .Codec = CODEC_SAA7113,
1109 .VideoChannels = 3,
1110 .VideoNorm = V4L2_STD_PAL,
1111 .AudioChannels = 1,
1112 .Radio = 1,
1113 .vbi = 1,
1114 .Tuner = 1,
1115 .TunerType = TUNER_TEMIC_4009FR5_PAL,
1116 .Vin_Reg1 = -1,
1117 .Vin_Reg2 = -1,
1118 .X_Offset = 0,
1119 .Y_Offset = 3,
1120 .Dvi_yuv = 7,
1121 .ModelString = "Pinnacle PCTV Bungee USB (PAL) FM",
1122 },
1123 [HPG_WINTV] = {
1124 .Interface = -1,
1125 .Codec = CODEC_SAA7111,
1126 .VideoChannels = 3,
1127 .VideoNorm = V4L2_STD_NTSC,
1128 .AudioChannels = 1,
1129 .Radio = 0,
1130 .vbi = 1,
1131 .Tuner = 1,
1132 .TunerType = TUNER_PHILIPS_NTSC_M,
1133 .Vin_Reg1 = -1,
1134 .Vin_Reg2 = -1,
1135 .X_Offset = -1,
1136 .Y_Offset = -1,
1137 .Dvi_yuv = -1,
1138 .ModelString = "Hauppauge WinTv-USB",
1139 },
99 {} /* Terminating entry */ 1140 {} /* Terminating entry */
100}; 1141};
101 1142
102/* Supported Devices */ 1143/* Supported Devices */
103 1144
104struct usb_device_id usbvision_table [] = { 1145struct usb_device_id usbvision_table [] = {
105 { USB_DEVICE(0xfff0, 0xfff0) }, /* Custom Dummy USBVision Device */ 1146 { USB_DEVICE(0xfff0, 0xfff0), .driver_info=DUMMY_DEVICE },
106 { USB_DEVICE(0x0a6f, 0x0400) }, /* Xanboo */ 1147 { USB_DEVICE(0x0a6f, 0x0400), .driver_info=XANBOO },
107 { USB_DEVICE(0x050d, 0x0106) }, /* Belkin USB VideoBus II Adapter */ 1148 { USB_DEVICE(0x050d, 0x0106), .driver_info=BELKIN_VIDEOBUS_II },
108 { USB_DEVICE(0x050d, 0x0207) }, /* Belkin Components USB VideoBus */ 1149 { USB_DEVICE(0x050d, 0x0207), .driver_info=BELKIN_VIDEOBUS },
109 { USB_DEVICE(0x050d, 0x0208) }, /* Belkin USB VideoBus II */ 1150 { USB_DEVICE(0x050d, 0x0208), .driver_info=BELKIN_USB_VIDEOBUS_II },
110 { USB_DEVICE(0x0571, 0x0002) }, /* echoFX InterView Lite */ 1151 { USB_DEVICE(0x0571, 0x0002), .driver_info=ECHOFX_INTERVIEW_LITE },
111 { USB_DEVICE(0x0573, 0x0003) }, /* USBGear USBG-V1 resp. HAMA USB */ 1152 { USB_DEVICE(0x0573, 0x0003), .driver_info=USBGEAR_USBG_V1 },
112 { USB_DEVICE(0x0573, 0x0400) }, /* D-Link V100 */ 1153 { USB_DEVICE(0x0573, 0x0400), .driver_info=D_LINK_V100 },
113 { USB_DEVICE(0x0573, 0x2000) }, /* X10 USB Camera */ 1154 { USB_DEVICE(0x0573, 0x2000), .driver_info=X10_USB_CAMERA },
114 { USB_DEVICE(0x0573, 0x2d00) }, /* Hauppauge WinTV USB Live (PAL B/G) */ 1155 { USB_DEVICE(0x0573, 0x2d00), .driver_info=HPG_WINTV_LIVE_PAL_BG },
115 { USB_DEVICE(0x0573, 0x2d01) }, /* Hauppauge WinTV USB Live Pro (NTSC M/N) */ 1156 { USB_DEVICE(0x0573, 0x2d01), .driver_info=HPG_WINTV_LIVE_PRO_NTSC_MN },
116 { USB_DEVICE(0x0573, 0x2101) }, /* Zoran Co. PMD (Nogatech) AV-grabber Manhattan */ 1157 { USB_DEVICE(0x0573, 0x2101), .driver_info=ZORAN_PMD_NOGATECH },
117 { USB_DEVICE(0x0573, 0x4100) }, /* Nogatech USB-TV FM (NTSC) */ 1158 { USB_DEVICE(0x0573, 0x4100), .driver_info=NOGATECH_USB_TV_NTSC_FM },
118 { USB_DEVICE(0x0573, 0x4110) }, /* PNY USB-TV (NTSC) FM */ 1159 { USB_DEVICE(0x0573, 0x4110), .driver_info=PNY_USB_TV_NTSC_FM },
119 { USB_DEVICE(0x0573, 0x4450) }, /* PixelView PlayTv-USB PRO (PAL) FM */ 1160 { USB_DEVICE(0x0573, 0x4450), .driver_info=PV_PLAYTV_USB_PRO_PAL_FM },
120 { USB_DEVICE(0x0573, 0x4550) }, /* ZTV ZT-721 2.4GHz USB A/V Receiver */ 1161 { USB_DEVICE(0x0573, 0x4550), .driver_info=ZT_721 },
121 { USB_DEVICE(0x0573, 0x4d00) }, /* Hauppauge WinTV USB (NTSC M/N) */ 1162 { USB_DEVICE(0x0573, 0x4d00), .driver_info=HPG_WINTV_NTSC_MN },
122 { USB_DEVICE(0x0573, 0x4d01) }, /* Hauppauge WinTV USB (PAL B/G) */ 1163 { USB_DEVICE(0x0573, 0x4d01), .driver_info=HPG_WINTV_PAL_BG },
123 { USB_DEVICE(0x0573, 0x4d02) }, /* Hauppauge WinTV USB (PAL I) */ 1164 { USB_DEVICE(0x0573, 0x4d02), .driver_info=HPG_WINTV_PAL_I },
124 { USB_DEVICE(0x0573, 0x4d03) }, /* Hauppauge WinTV USB (PAL/SECAM L) */ 1165 { USB_DEVICE(0x0573, 0x4d03), .driver_info=HPG_WINTV_PAL_SECAM_L },
125 { USB_DEVICE(0x0573, 0x4d04) }, /* Hauppauge WinTV USB (PAL D/K) */ 1166 { USB_DEVICE(0x0573, 0x4d04), .driver_info=HPG_WINTV_PAL_D_K },
126 { USB_DEVICE(0x0573, 0x4d10) }, /* Hauppauge WinTV USB (NTSC FM) */ 1167 { USB_DEVICE(0x0573, 0x4d10), .driver_info=HPG_WINTV_NTSC_FM },
127 { USB_DEVICE(0x0573, 0x4d11) }, /* Hauppauge WinTV USB (PAL B/G FM) */ 1168 { USB_DEVICE(0x0573, 0x4d11), .driver_info=HPG_WINTV_PAL_BG_FM },
128 { USB_DEVICE(0x0573, 0x4d12) }, /* Hauppauge WinTV USB (PAL I FM) */ 1169 { USB_DEVICE(0x0573, 0x4d12), .driver_info=HPG_WINTV_PAL_I_FM },
129 { USB_DEVICE(0x0573, 0x4d14) }, /* Hauppauge WinTV USB (PAL D/K FM) */ 1170 { USB_DEVICE(0x0573, 0x4d14), .driver_info=HPG_WINTV_PAL_D_K_FM },
130 { USB_DEVICE(0x0573, 0x4d2a) }, /* Hauppauge WinTV USB Pro (NTSC M/N) */ 1171 { USB_DEVICE(0x0573, 0x4d2a), .driver_info=HPG_WINTV_PRO_NTSC_MN },
131 { USB_DEVICE(0x0573, 0x4d2b) }, /* Hauppauge WinTV USB Pro (NTSC M/N) */ 1172 { USB_DEVICE(0x0573, 0x4d2b), .driver_info=HPG_WINTV_PRO_NTSC_MN_V2 },
132 { USB_DEVICE(0x0573, 0x4d2c) }, /* Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L) */ 1173 { USB_DEVICE(0x0573, 0x4d2c), .driver_info=HPG_WINTV_PRO_PAL },
133 { USB_DEVICE(0x0573, 0x4d20) }, /* Hauppauge WinTV USB Pro (NTSC M/N) */ 1174 { USB_DEVICE(0x0573, 0x4d20), .driver_info=HPG_WINTV_PRO_NTSC_MN_V3 },
134 { USB_DEVICE(0x0573, 0x4d21) }, /* Hauppauge WinTV USB Pro (PAL B/G) */ 1175 { USB_DEVICE(0x0573, 0x4d21), .driver_info=HPG_WINTV_PRO_PAL_BG },
135 { USB_DEVICE(0x0573, 0x4d22) }, /* Hauppauge WinTV USB Pro (PAL I) */ 1176 { USB_DEVICE(0x0573, 0x4d22), .driver_info=HPG_WINTV_PRO_PAL_I },
136 { USB_DEVICE(0x0573, 0x4d23) }, /* Hauppauge WinTV USB Pro (PAL/SECAM L) */ 1177 { USB_DEVICE(0x0573, 0x4d23), .driver_info=HPG_WINTV_PRO_PAL_SECAM_L },
137 { USB_DEVICE(0x0573, 0x4d24) }, /* Hauppauge WinTV USB Pro (PAL D/K) */ 1178 { USB_DEVICE(0x0573, 0x4d24), .driver_info=HPG_WINTV_PRO_PAL_D_K },
138 { USB_DEVICE(0x0573, 0x4d25) }, /* Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) */ 1179 { USB_DEVICE(0x0573, 0x4d25), .driver_info=HPG_WINTV_PRO_PAL_SECAM },
139 { USB_DEVICE(0x0573, 0x4d26) }, /* Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) */ 1180 { USB_DEVICE(0x0573, 0x4d26), .driver_info=HPG_WINTV_PRO_PAL_SECAM_V2 },
140 { USB_DEVICE(0x0573, 0x4d27) }, /* Hauppauge WinTV USB Pro (PAL B/G) */ 1181 { USB_DEVICE(0x0573, 0x4d27), .driver_info=HPG_WINTV_PRO_PAL_BG_V2 },
141 { USB_DEVICE(0x0573, 0x4d28) }, /* Hauppauge WinTV USB Pro (PAL B/G,D/K) */ 1182 { USB_DEVICE(0x0573, 0x4d28), .driver_info=HPG_WINTV_PRO_PAL_BG_D_K },
142 { USB_DEVICE(0x0573, 0x4d29) }, /* Hauppauge WinTV USB Pro (PAL I,D/K) */ 1183 { USB_DEVICE(0x0573, 0x4d29), .driver_info=HPG_WINTV_PRO_PAL_I_D_K },
143 { USB_DEVICE(0x0573, 0x4d30) }, /* Hauppauge WinTV USB Pro (NTSC M/N FM) */ 1184 { USB_DEVICE(0x0573, 0x4d30), .driver_info=HPG_WINTV_PRO_NTSC_MN_FM },
144 { USB_DEVICE(0x0573, 0x4d31) }, /* Hauppauge WinTV USB Pro (PAL B/G FM) */ 1185 { USB_DEVICE(0x0573, 0x4d31), .driver_info=HPG_WINTV_PRO_PAL_BG_FM },
145 { USB_DEVICE(0x0573, 0x4d32) }, /* Hauppauge WinTV USB Pro (PAL I FM) */ 1186 { USB_DEVICE(0x0573, 0x4d32), .driver_info=HPG_WINTV_PRO_PAL_I_FM },
146 { USB_DEVICE(0x0573, 0x4d34) }, /* Hauppauge WinTV USB Pro (PAL D/K FM) */ 1187 { USB_DEVICE(0x0573, 0x4d34), .driver_info=HPG_WINTV_PRO_PAL_D_K_FM },
147 { USB_DEVICE(0x0573, 0x4d35) }, /* Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) */ 1188 { USB_DEVICE(0x0573, 0x4d35), .driver_info=HPG_WINTV_PRO_TEMIC_PAL_FM },
148 { USB_DEVICE(0x0573, 0x4d36) }, /* Hauppauge WinTV USB Pro (Temic PAL B/G FM) */ 1189 { USB_DEVICE(0x0573, 0x4d36), .driver_info=HPG_WINTV_PRO_TEMIC_PAL_BG_FM },
149 { USB_DEVICE(0x0573, 0x4d37) }, /* Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM) */ 1190 { USB_DEVICE(0x0573, 0x4d37), .driver_info=HPG_WINTV_PRO_PAL_FM },
150 { USB_DEVICE(0x0573, 0x4d38) }, /* Hauppauge WinTV USB Pro (NTSC M/N FM) */ 1191 { USB_DEVICE(0x0573, 0x4d38), .driver_info=HPG_WINTV_PRO_NTSC_MN_FM_V2 },
151 { USB_DEVICE(0x0768, 0x0006) }, /* Camtel Technology USB TV Genie Pro FM Model TVB330 */ 1192 { USB_DEVICE(0x0768, 0x0006), .driver_info=CAMTEL_TVB330 },
152 { USB_DEVICE(0x07d0, 0x0001) }, /* Digital Video Creator I */ 1193 { USB_DEVICE(0x07d0, 0x0001), .driver_info=DIGITAL_VIDEO_CREATOR_I },
153 { USB_DEVICE(0x07d0, 0x0002) }, /* Global Village GV-007 (NTSC) */ 1194 { USB_DEVICE(0x07d0, 0x0002), .driver_info=GLOBAL_VILLAGE_GV_007_NTSC },
154 { USB_DEVICE(0x07d0, 0x0003) }, /* Dazzle Fusion Model DVC-50 Rev 1 (NTSC) */ 1195 { USB_DEVICE(0x07d0, 0x0003), .driver_info=DAZZLE_DVC_50_REV_1_NTSC },
155 { USB_DEVICE(0x07d0, 0x0004) }, /* Dazzle Fusion Model DVC-80 Rev 1 (PAL) */ 1196 { USB_DEVICE(0x07d0, 0x0004), .driver_info=DAZZLE_DVC_80_REV_1_PAL },
156 { USB_DEVICE(0x07d0, 0x0005) }, /* Dazzle Fusion Model DVC-90 Rev 1 (SECAM) */ 1197 { USB_DEVICE(0x07d0, 0x0005), .driver_info=DAZZLE_DVC_90_REV_1_SECAM },
157 { USB_DEVICE(0x07f8, 0x9104) }, /* Eskape Labs MyTV2Go */ 1198 { USB_DEVICE(0x07f8, 0x9104), .driver_info=ESKAPE_LABS_MYTV2GO },
158 { USB_DEVICE(0x2304, 0x010d) }, /* Pinnacle Studio PCTV USB (PAL) */ 1199 { USB_DEVICE(0x2304, 0x010d), .driver_info=PINNA_PCTV_USB_PAL },
159 { USB_DEVICE(0x2304, 0x0109) }, /* Pinnacle Studio PCTV USB (SECAM) */ 1200 { USB_DEVICE(0x2304, 0x0109), .driver_info=PINNA_PCTV_USB_SECAM },
160 { USB_DEVICE(0x2304, 0x0110) }, /* Pinnacle Studio PCTV USB (PAL) */ 1201 { USB_DEVICE(0x2304, 0x0110), .driver_info=PINNA_PCTV_USB_PAL_FM },
161 { USB_DEVICE(0x2304, 0x0111) }, /* Miro PCTV USB */ 1202 { USB_DEVICE(0x2304, 0x0111), .driver_info=MIRO_PCTV_USB },
162 { USB_DEVICE(0x2304, 0x0112) }, /* Pinnacle Studio PCTV USB (NTSC) with FM radio */ 1203 { USB_DEVICE(0x2304, 0x0112), .driver_info=PINNA_PCTV_USB_NTSC_FM },
163 { USB_DEVICE(0x2304, 0x0210) }, /* Pinnacle Studio PCTV USB (PAL) with FM radio */ 1204 { USB_DEVICE(0x2304, 0x0210), .driver_info=PINNA_PCTV_USB_PAL_FM_V2 },
164 { USB_DEVICE(0x2304, 0x0212) }, /* Pinnacle Studio PCTV USB (NTSC) with FM radio */ 1205 { USB_DEVICE(0x2304, 0x0212), .driver_info=PINNA_PCTV_USB_NTSC_FM_V2 },
165 { USB_DEVICE(0x2304, 0x0214) }, /* Pinnacle Studio PCTV USB (PAL) with FM radio */ 1206 { USB_DEVICE(0x2304, 0x0214), .driver_info=PINNA_PCTV_USB_PAL_FM_V3 },
166 { USB_DEVICE(0x2304, 0x0300) }, /* Pinnacle Studio Linx Video input cable (NTSC) */ 1207 { USB_DEVICE(0x2304, 0x0300), .driver_info=PINNA_LINX_VD_IN_CAB_NTSC },
167 { USB_DEVICE(0x2304, 0x0301) }, /* Pinnacle Studio Linx Video input cable (PAL) */ 1208 { USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
168 { USB_DEVICE(0x2304, 0x0419) }, /* Pinnacle PCTV Bungee USB (PAL) FM */ 1209 { USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
169 { USB_DEVICE(0x2400, 0x4200) }, /* Hauppauge WinTv-USB2 Model 42012 */ 1210 { USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
170 1211
171 { } /* Terminating entry */ 1212 { } /* Terminating entry */
172}; 1213};
diff --git a/drivers/media/video/usbvision/usbvision-cards.h b/drivers/media/video/usbvision/usbvision-cards.h
new file mode 100644
index 000000000000..37d619b1e038
--- /dev/null
+++ b/drivers/media/video/usbvision/usbvision-cards.h
@@ -0,0 +1,65 @@
1#define DUMMY_DEVICE 0
2#define XANBOO 1
3#define BELKIN_VIDEOBUS_II 2
4#define BELKIN_VIDEOBUS 3
5#define BELKIN_USB_VIDEOBUS_II 4
6#define ECHOFX_INTERVIEW_LITE 5
7#define USBGEAR_USBG_V1 6
8#define D_LINK_V100 7
9#define X10_USB_CAMERA 8
10#define HPG_WINTV_LIVE_PAL_BG 9
11#define HPG_WINTV_LIVE_PRO_NTSC_MN 10
12#define ZORAN_PMD_NOGATECH 11
13#define NOGATECH_USB_TV_NTSC_FM 12
14#define PNY_USB_TV_NTSC_FM 13
15#define PV_PLAYTV_USB_PRO_PAL_FM 14
16#define ZT_721 15
17#define HPG_WINTV_NTSC_MN 16
18#define HPG_WINTV_PAL_BG 17
19#define HPG_WINTV_PAL_I 18
20#define HPG_WINTV_PAL_SECAM_L 19
21#define HPG_WINTV_PAL_D_K 20
22#define HPG_WINTV_NTSC_FM 21
23#define HPG_WINTV_PAL_BG_FM 22
24#define HPG_WINTV_PAL_I_FM 23
25#define HPG_WINTV_PAL_D_K_FM 24
26#define HPG_WINTV_PRO_NTSC_MN 25
27#define HPG_WINTV_PRO_NTSC_MN_V2 26
28#define HPG_WINTV_PRO_PAL 27
29#define HPG_WINTV_PRO_NTSC_MN_V3 28
30#define HPG_WINTV_PRO_PAL_BG 29
31#define HPG_WINTV_PRO_PAL_I 30
32#define HPG_WINTV_PRO_PAL_SECAM_L 31
33#define HPG_WINTV_PRO_PAL_D_K 32
34#define HPG_WINTV_PRO_PAL_SECAM 33
35#define HPG_WINTV_PRO_PAL_SECAM_V2 34
36#define HPG_WINTV_PRO_PAL_BG_V2 35
37#define HPG_WINTV_PRO_PAL_BG_D_K 36
38#define HPG_WINTV_PRO_PAL_I_D_K 37
39#define HPG_WINTV_PRO_NTSC_MN_FM 38
40#define HPG_WINTV_PRO_PAL_BG_FM 39
41#define HPG_WINTV_PRO_PAL_I_FM 40
42#define HPG_WINTV_PRO_PAL_D_K_FM 41
43#define HPG_WINTV_PRO_TEMIC_PAL_FM 42
44#define HPG_WINTV_PRO_TEMIC_PAL_BG_FM 43
45#define HPG_WINTV_PRO_PAL_FM 44
46#define HPG_WINTV_PRO_NTSC_MN_FM_V2 45
47#define CAMTEL_TVB330 46
48#define DIGITAL_VIDEO_CREATOR_I 47
49#define GLOBAL_VILLAGE_GV_007_NTSC 48
50#define DAZZLE_DVC_50_REV_1_NTSC 49
51#define DAZZLE_DVC_80_REV_1_PAL 50
52#define DAZZLE_DVC_90_REV_1_SECAM 51
53#define ESKAPE_LABS_MYTV2GO 52
54#define PINNA_PCTV_USB_PAL 53
55#define PINNA_PCTV_USB_SECAM 54
56#define PINNA_PCTV_USB_PAL_FM 55
57#define MIRO_PCTV_USB 56
58#define PINNA_PCTV_USB_NTSC_FM 57
59#define PINNA_PCTV_USB_PAL_FM_V2 58
60#define PINNA_PCTV_USB_NTSC_FM_V2 59
61#define PINNA_PCTV_USB_PAL_FM_V3 60
62#define PINNA_LINX_VD_IN_CAB_NTSC 61
63#define PINNA_LINX_VD_IN_CAB_PAL 62
64#define PINNA_PCTV_BUNGEE_PAL_FM 63
65#define HPG_WINTV 64
diff --git a/drivers/media/video/usbvision/usbvision-video.c b/drivers/media/video/usbvision/usbvision-video.c
index 6fc14557d623..22c2889d3b5c 100644
--- a/drivers/media/video/usbvision/usbvision-video.c
+++ b/drivers/media/video/usbvision/usbvision-video.c
@@ -76,6 +76,7 @@
76#endif 76#endif
77 77
78#include "usbvision.h" 78#include "usbvision.h"
79#include "usbvision-cards.h"
79 80
80#define DRIVER_AUTHOR "Joerg Heckenbach <joerg@heckenbach-aw.de>, Dwaine Garden <DwaineGarden@rogers.com>" 81#define DRIVER_AUTHOR "Joerg Heckenbach <joerg@heckenbach-aw.de>, Dwaine Garden <DwaineGarden@rogers.com>"
81#define DRIVER_NAME "usbvision" 82#define DRIVER_NAME "usbvision"
@@ -1775,7 +1776,8 @@ static void usbvision_configure_video(struct usb_usbvision *usbvision)
1775 * if it looks like USBVISION video device 1776 * if it looks like USBVISION video device
1776 * 1777 *
1777 */ 1778 */
1778static int __devinit usbvision_probe(struct usb_interface *intf, const struct usb_device_id *devid) 1779static int __devinit usbvision_probe(struct usb_interface *intf,
1780 const struct usb_device_id *devid)
1779{ 1781{
1780 struct usb_device *dev = usb_get_dev(interface_to_usbdev(intf)); 1782 struct usb_device *dev = usb_get_dev(interface_to_usbdev(intf));
1781 struct usb_interface *uif; 1783 struct usb_interface *uif;
@@ -1786,25 +1788,13 @@ static int __devinit usbvision_probe(struct usb_interface *intf, const struct us
1786 int model,i; 1788 int model,i;
1787 1789
1788 PDEBUG(DBG_PROBE, "VID=%#04x, PID=%#04x, ifnum=%u", 1790 PDEBUG(DBG_PROBE, "VID=%#04x, PID=%#04x, ifnum=%u",
1789 dev->descriptor.idVendor, dev->descriptor.idProduct, ifnum); 1791 dev->descriptor.idVendor,
1792 dev->descriptor.idProduct, ifnum);
1790 1793
1791 /* Is it an USBVISION video dev? */ 1794 model = devid->driver_info;
1792 model = 0; 1795 printk(KERN_INFO "%s: %s found\n", __FUNCTION__,
1793 for(model = 0; usbvision_device_data[model].idVendor; model++) { 1796 usbvision_device_data[model].ModelString);
1794 if (le16_to_cpu(dev->descriptor.idVendor) != usbvision_device_data[model].idVendor) {
1795 continue;
1796 }
1797 if (le16_to_cpu(dev->descriptor.idProduct) != usbvision_device_data[model].idProduct) {
1798 continue;
1799 }
1800 1797
1801 printk(KERN_INFO "%s: %s found\n", __FUNCTION__, usbvision_device_data[model].ModelString);
1802 break;
1803 }
1804
1805 if (usbvision_device_data[model].idVendor == 0) {
1806 return -ENODEV; //no matching device
1807 }
1808 if (usbvision_device_data[model].Interface >= 0) { 1798 if (usbvision_device_data[model].Interface >= 0) {
1809 interface = &dev->actconfig->interface[usbvision_device_data[model].Interface]->altsetting[0]; 1799 interface = &dev->actconfig->interface[usbvision_device_data[model].Interface]->altsetting[0];
1810 } 1800 }
@@ -1828,10 +1818,11 @@ static int __devinit usbvision_probe(struct usb_interface *intf, const struct us
1828 err("%s: couldn't allocate USBVision struct", __FUNCTION__); 1818 err("%s: couldn't allocate USBVision struct", __FUNCTION__);
1829 return -ENOMEM; 1819 return -ENOMEM;
1830 } 1820 }
1821
1831 if (dev->descriptor.bNumConfigurations > 1) { 1822 if (dev->descriptor.bNumConfigurations > 1) {
1832 usbvision->bridgeType = BRIDGE_NT1004; 1823 usbvision->bridgeType = BRIDGE_NT1004;
1833 } 1824 }
1834 else if (usbvision_device_data[model].ModelString == "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)") { 1825 else if (model == DAZZLE_DVC_90_REV_1_SECAM) {
1835 usbvision->bridgeType = BRIDGE_NT1005; 1826 usbvision->bridgeType = BRIDGE_NT1005;
1836 } 1827 }
1837 else { 1828 else {
@@ -1958,6 +1949,8 @@ static struct usb_driver usbvision_driver = {
1958 */ 1949 */
1959static void customdevice_process(void) 1950static void customdevice_process(void)
1960{ 1951{
1952 unsigned int id_vend,id_prod;
1953
1961 usbvision_device_data[0]=usbvision_device_data[1]; 1954 usbvision_device_data[0]=usbvision_device_data[1];
1962 usbvision_table[0]=usbvision_table[1]; 1955 usbvision_table[0]=usbvision_table[1];
1963 1956
@@ -1965,7 +1958,7 @@ static void customdevice_process(void)
1965 { 1958 {
1966 char *parse=CustomDevice; 1959 char *parse=CustomDevice;
1967 1960
1968 PDEBUG(DBG_PROBE, "CustomDevide=%s", CustomDevice); 1961 PDEBUG(DBG_PROBE, "CustomDevice=%s", CustomDevice);
1969 1962
1970 /*format is CustomDevice="0x0573 0x4D31 0 7113 3 PAL 1 1 1 5 -1 -1 -1 -1 -1" 1963 /*format is CustomDevice="0x0573 0x4D31 0 7113 3 PAL 1 1 1 5 -1 -1 -1 -1 -1"
1971 usbvision_device_data[0].idVendor; 1964 usbvision_device_data[0].idVendor;
@@ -1990,13 +1983,16 @@ static void customdevice_process(void)
1990 usbvision_device_data[0].ModelString="USBVISION Custom Device"; 1983 usbvision_device_data[0].ModelString="USBVISION Custom Device";
1991 1984
1992 parse+=2; 1985 parse+=2;
1993 sscanf(parse,"%x",&usbvision_device_data[0].idVendor); 1986 sscanf(parse,"%u",&id_vend);
1987 usbvision_table[0].idVendor=id_vend;
1988
1994 goto2next(parse); 1989 goto2next(parse);
1995 PDEBUG(DBG_PROBE, "idVendor=0x%.4X", usbvision_device_data[0].idVendor); 1990 PDEBUG(DBG_PROBE, "idVendor=0x%.4X", usbvision_table[0].idVendor);
1996 parse+=2; 1991 parse+=2;
1997 sscanf(parse,"%x",&usbvision_device_data[0].idProduct); 1992 sscanf(parse,"%u",&id_prod);
1993 usbvision_table[0].idProduct=id_prod;
1998 goto2next(parse); 1994 goto2next(parse);
1999 PDEBUG(DBG_PROBE, "idProduct=0x%.4X", usbvision_device_data[0].idProduct); 1995 PDEBUG(DBG_PROBE, "idProduct=0x%.4X", usbvision_table[0].idProduct);
2000 sscanf(parse,"%d",&usbvision_device_data[0].Interface); 1996 sscanf(parse,"%d",&usbvision_device_data[0].Interface);
2001 goto2next(parse); 1997 goto2next(parse);
2002 PDEBUG(DBG_PROBE, "Interface=%d", usbvision_device_data[0].Interface); 1998 PDEBUG(DBG_PROBE, "Interface=%d", usbvision_device_data[0].Interface);
@@ -2060,9 +2056,6 @@ static void customdevice_process(void)
2060 2056
2061 //add to usbvision_table also 2057 //add to usbvision_table also
2062 usbvision_table[0].match_flags=USB_DEVICE_ID_MATCH_DEVICE; 2058 usbvision_table[0].match_flags=USB_DEVICE_ID_MATCH_DEVICE;
2063 usbvision_table[0].idVendor=usbvision_device_data[0].idVendor;
2064 usbvision_table[0].idProduct=usbvision_device_data[0].idProduct;
2065
2066 } 2059 }
2067} 2060}
2068 2061
diff --git a/drivers/media/video/usbvision/usbvision.h b/drivers/media/video/usbvision/usbvision.h
index ad6afd3e42a4..4639f3485e76 100644
--- a/drivers/media/video/usbvision/usbvision.h
+++ b/drivers/media/video/usbvision/usbvision.h
@@ -342,8 +342,6 @@ struct usbvision_frame {
342#define BRIDGE_NT1005 1005 342#define BRIDGE_NT1005 1005
343 343
344struct usbvision_device_data_st { 344struct usbvision_device_data_st {
345 int idVendor;
346 int idProduct;
347 int Interface; /* to handle special interface number like BELKIN and Hauppauge WinTV-USB II */ 345 int Interface; /* to handle special interface number like BELKIN and Hauppauge WinTV-USB II */
348 int Codec; 346 int Codec;
349 int VideoChannels; 347 int VideoChannels;