Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
usbvision-cards.c
Go to the documentation of this file.
1 /*
2  * usbvision-cards.c
3  * usbvision cards definition file
4  *
5  * Copyright (c) 1999-2005 Joerg Heckenbach <[email protected]>
6  *
7  * This module is part of usbvision driver project.
8  * Updates to driver completed by Dwaine P. Garden
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  */
24 
25 
26 #include <linux/list.h>
27 #include <linux/module.h>
28 #include <media/v4l2-dev.h>
29 #include <media/tuner.h>
30 #include "usbvision.h"
31 #include "usbvision-cards.h"
32 
33 /* Supported Devices: A table for usbvision.c*/
35  [XANBOO] = {
36  .interface = -1,
37  .codec = CODEC_SAA7113,
38  .video_channels = 4,
39  .video_norm = V4L2_STD_NTSC,
40  .audio_channels = 1,
41  .radio = 0,
42  .vbi = 1,
43  .tuner = 0,
44  .tuner_type = 0,
45  .x_offset = -1,
46  .y_offset = -1,
47  .model_string = "Xanboo",
48  },
49  [BELKIN_VIDEOBUS_II] = {
50  .interface = -1,
51  .codec = CODEC_SAA7113,
52  .video_channels = 2,
53  .video_norm = V4L2_STD_PAL,
54  .audio_channels = 1,
55  .radio = 0,
56  .vbi = 1,
57  .tuner = 0,
58  .tuner_type = 0,
59  .x_offset = 0,
60  .y_offset = 3,
61  .dvi_yuv_override = 1,
62  .dvi_yuv = 7,
63  .model_string = "Belkin USB VideoBus II Adapter",
64  },
65  [BELKIN_VIDEOBUS] = {
66  .interface = -1,
67  .codec = CODEC_SAA7111,
68  .video_channels = 2,
69  .video_norm = V4L2_STD_NTSC,
70  .audio_channels = 1,
71  .radio = 0,
72  .vbi = 1,
73  .tuner = 0,
74  .tuner_type = 0,
75  .x_offset = -1,
76  .y_offset = -1,
77  .model_string = "Belkin Components USB VideoBus",
78  },
80  .interface = -1,
81  .codec = CODEC_SAA7113,
82  .video_channels = 2,
83  .video_norm = V4L2_STD_NTSC,
84  .audio_channels = 1,
85  .radio = 0,
86  .vbi = 1,
87  .tuner = 0,
88  .tuner_type = 0,
89  .x_offset = 0,
90  .y_offset = 3,
91  .dvi_yuv_override = 1,
92  .dvi_yuv = 7,
93  .model_string = "Belkin USB VideoBus II",
94  },
96  .interface = 0,
97  .codec = CODEC_SAA7111,
98  .video_channels = 2,
99  .video_norm = V4L2_STD_PAL,
100  .audio_channels = 0,
101  .radio = 0,
102  .vbi = 1,
103  .tuner = 0,
104  .tuner_type = 0,
105  .x_offset = -1,
106  .y_offset = -1,
107  .dvi_yuv_override = 1,
108  .dvi_yuv = 7,
109  .model_string = "echoFX InterView Lite",
110  },
111  [USBGEAR_USBG_V1] = {
112  .interface = -1,
113  .codec = CODEC_SAA7111,
114  .video_channels = 2,
115  .video_norm = V4L2_STD_NTSC,
116  .audio_channels = 1,
117  .radio = 0,
118  .vbi = 1,
119  .tuner = 0,
120  .tuner_type = 0,
121  .x_offset = -1,
122  .y_offset = -1,
123  .model_string = "USBGear USBG-V1 resp. HAMA USB",
124  },
125  [D_LINK_V100] = {
126  .interface = -1,
127  .codec = CODEC_SAA7113,
128  .video_channels = 4,
129  .video_norm = V4L2_STD_NTSC,
130  .audio_channels = 0,
131  .radio = 0,
132  .vbi = 1,
133  .tuner = 0,
134  .tuner_type = 0,
135  .x_offset = 0,
136  .y_offset = 3,
137  .dvi_yuv_override = 1,
138  .dvi_yuv = 7,
139  .model_string = "D-Link V100",
140  },
141  [X10_USB_CAMERA] = {
142  .interface = -1,
143  .codec = CODEC_SAA7111,
144  .video_channels = 2,
145  .video_norm = V4L2_STD_NTSC,
146  .audio_channels = 1,
147  .radio = 0,
148  .vbi = 1,
149  .tuner = 0,
150  .tuner_type = 0,
151  .x_offset = -1,
152  .y_offset = -1,
153  .model_string = "X10 USB Camera",
154  },
156  .interface = -1,
157  .codec = CODEC_SAA7111,
158  .video_channels = 2,
159  .video_norm = V4L2_STD_PAL,
160  .audio_channels = 1,
161  .radio = 0,
162  .vbi = 1,
163  .tuner = 0,
164  .tuner_type = 0,
165  .x_offset = -1,
166  .y_offset = 3,
167  .dvi_yuv_override = 1,
168  .dvi_yuv = 7,
169  .model_string = "Hauppauge WinTV USB Live (PAL B/G)",
170  },
172  .interface = -1,
173  .codec = CODEC_SAA7113,
174  .video_channels = 2,
175  .video_norm = V4L2_STD_NTSC,
176  .audio_channels = 0,
177  .radio = 0,
178  .vbi = 1,
179  .tuner = 0,
180  .tuner_type = 0,
181  .x_offset = 0,
182  .y_offset = 3,
183  .dvi_yuv_override = 1,
184  .dvi_yuv = 7,
185  .model_string = "Hauppauge WinTV USB Live Pro (NTSC M/N)",
186  },
187  [ZORAN_PMD_NOGATECH] = {
188  .interface = -1,
189  .codec = CODEC_SAA7113,
190  .video_channels = 2,
191  .video_norm = V4L2_STD_PAL,
192  .audio_channels = 2,
193  .radio = 0,
194  .vbi = 1,
195  .tuner = 0,
196  .tuner_type = 0,
197  .x_offset = 0,
198  .y_offset = 3,
199  .dvi_yuv_override = 1,
200  .dvi_yuv = 7,
201  .model_string = "Zoran Co. PMD (Nogatech) AV-grabber Manhattan",
202  },
204  .interface = -1,
205  .codec = CODEC_SAA7111,
206  .video_channels = 3,
207  .video_norm = V4L2_STD_NTSC,
208  .audio_channels = 1,
209  .radio = 1,
210  .vbi = 1,
211  .tuner = 1,
212  .tuner_type = TUNER_PHILIPS_NTSC_M,
213  .x_offset = -1,
214  .y_offset = 20,
215  .model_string = "Nogatech USB-TV (NTSC) FM",
216  },
217  [PNY_USB_TV_NTSC_FM] = {
218  .interface = -1,
219  .codec = CODEC_SAA7111,
220  .video_channels = 3,
221  .video_norm = V4L2_STD_NTSC,
222  .audio_channels = 1,
223  .radio = 1,
224  .vbi = 1,
225  .tuner = 1,
226  .tuner_type = TUNER_PHILIPS_NTSC_M,
227  .x_offset = -1,
228  .y_offset = 20,
229  .model_string = "PNY USB-TV (NTSC) FM",
230  },
232  .interface = 0,
233  .codec = CODEC_SAA7113,
234  .video_channels = 3,
235  .video_norm = V4L2_STD_PAL,
236  .audio_channels = 1,
237  .radio = 1,
238  .vbi = 1,
239  .tuner = 1,
240  .tuner_type = TUNER_PHILIPS_PAL,
241  .x_offset = 0,
242  .y_offset = 3,
243  .dvi_yuv_override = 1,
244  .dvi_yuv = 7,
245  .model_string = "PixelView PlayTv-USB PRO (PAL) FM",
246  },
247  [ZT_721] = {
248  .interface = 0,
249  .codec = CODEC_SAA7113,
250  .video_channels = 3,
251  .video_norm = V4L2_STD_PAL,
252  .audio_channels = 1,
253  .radio = 1,
254  .vbi = 1,
255  .tuner = 1,
256  .tuner_type = TUNER_PHILIPS_PAL,
257  .x_offset = 0,
258  .y_offset = 3,
259  .dvi_yuv_override = 1,
260  .dvi_yuv = 7,
261  .model_string = "ZTV ZT-721 2.4GHz USB A/V Receiver",
262  },
263  [HPG_WINTV_NTSC_MN] = {
264  .interface = -1,
265  .codec = CODEC_SAA7111,
266  .video_channels = 3,
267  .video_norm = V4L2_STD_NTSC,
268  .audio_channels = 1,
269  .radio = 0,
270  .vbi = 1,
271  .tuner = 1,
272  .tuner_type = TUNER_PHILIPS_NTSC_M,
273  .x_offset = -1,
274  .y_offset = 20,
275  .model_string = "Hauppauge WinTV USB (NTSC M/N)",
276  },
277  [HPG_WINTV_PAL_BG] = {
278  .interface = -1,
279  .codec = CODEC_SAA7111,
280  .video_channels = 3,
281  .video_norm = V4L2_STD_PAL,
282  .audio_channels = 1,
283  .radio = 0,
284  .vbi = 1,
285  .tuner = 1,
286  .tuner_type = TUNER_PHILIPS_PAL,
287  .x_offset = -1,
288  .y_offset = -1,
289  .model_string = "Hauppauge WinTV USB (PAL B/G)",
290  },
291  [HPG_WINTV_PAL_I] = {
292  .interface = -1,
293  .codec = CODEC_SAA7111,
294  .video_channels = 3,
295  .video_norm = V4L2_STD_PAL,
296  .audio_channels = 1,
297  .radio = 0,
298  .vbi = 1,
299  .tuner = 1,
300  .tuner_type = TUNER_PHILIPS_PAL,
301  .x_offset = -1,
302  .y_offset = -1,
303  .model_string = "Hauppauge WinTV USB (PAL I)",
304  },
306  .interface = -1,
307  .codec = CODEC_SAA7111,
308  .video_channels = 3,
309  .video_norm = V4L2_STD_SECAM,
310  .audio_channels = 1,
311  .radio = 0,
312  .vbi = 1,
313  .tuner = 1,
314  .tuner_type = TUNER_PHILIPS_SECAM,
315  .x_offset = 0x80,
316  .y_offset = 0x16,
317  .model_string = "Hauppauge WinTV USB (PAL/SECAM L)",
318  },
319  [HPG_WINTV_PAL_D_K] = {
320  .interface = -1,
321  .codec = CODEC_SAA7111,
322  .video_channels = 3,
323  .video_norm = V4L2_STD_PAL,
324  .audio_channels = 1,
325  .radio = 0,
326  .vbi = 1,
327  .tuner = 1,
328  .tuner_type = TUNER_PHILIPS_PAL,
329  .x_offset = -1,
330  .y_offset = -1,
331  .model_string = "Hauppauge WinTV USB (PAL D/K)",
332  },
333  [HPG_WINTV_NTSC_FM] = {
334  .interface = -1,
335  .codec = CODEC_SAA7111,
336  .video_channels = 3,
337  .video_norm = V4L2_STD_NTSC,
338  .audio_channels = 1,
339  .radio = 1,
340  .vbi = 1,
341  .tuner = 1,
342  .tuner_type = TUNER_PHILIPS_NTSC_M,
343  .x_offset = -1,
344  .y_offset = -1,
345  .model_string = "Hauppauge WinTV USB (NTSC FM)",
346  },
347  [HPG_WINTV_PAL_BG_FM] = {
348  .interface = -1,
349  .codec = CODEC_SAA7111,
350  .video_channels = 3,
351  .video_norm = V4L2_STD_PAL,
352  .audio_channels = 1,
353  .radio = 1,
354  .vbi = 1,
355  .tuner = 1,
356  .tuner_type = TUNER_PHILIPS_PAL,
357  .x_offset = -1,
358  .y_offset = -1,
359  .model_string = "Hauppauge WinTV USB (PAL B/G FM)",
360  },
361  [HPG_WINTV_PAL_I_FM] = {
362  .interface = -1,
363  .codec = CODEC_SAA7111,
364  .video_channels = 3,
365  .video_norm = V4L2_STD_PAL,
366  .audio_channels = 1,
367  .radio = 1,
368  .vbi = 1,
369  .tuner = 1,
370  .tuner_type = TUNER_PHILIPS_PAL,
371  .x_offset = -1,
372  .y_offset = -1,
373  .model_string = "Hauppauge WinTV USB (PAL I FM)",
374  },
376  .interface = -1,
377  .codec = CODEC_SAA7111,
378  .video_channels = 3,
379  .video_norm = V4L2_STD_PAL,
380  .audio_channels = 1,
381  .radio = 1,
382  .vbi = 1,
383  .tuner = 1,
384  .tuner_type = TUNER_PHILIPS_PAL,
385  .x_offset = -1,
386  .y_offset = -1,
387  .model_string = "Hauppauge WinTV USB (PAL D/K FM)",
388  },
390  .interface = 0,
391  .codec = CODEC_SAA7113,
392  .video_channels = 3,
393  .video_norm = V4L2_STD_NTSC,
394  .audio_channels = 1,
395  .radio = 1,
396  .vbi = 1,
397  .tuner = 1,
398  .tuner_type = TUNER_MICROTUNE_4049FM5,
399  .x_offset = 0,
400  .y_offset = 3,
401  .dvi_yuv_override = 1,
402  .dvi_yuv = 7,
403  .model_string = "Hauppauge WinTV USB Pro (NTSC M/N)",
404  },
406  .interface = 0,
407  .codec = CODEC_SAA7113,
408  .video_channels = 3,
409  .video_norm = V4L2_STD_NTSC,
410  .audio_channels = 1,
411  .radio = 1,
412  .vbi = 1,
413  .tuner = 1,
414  .tuner_type = TUNER_MICROTUNE_4049FM5,
415  .x_offset = 0,
416  .y_offset = 3,
417  .dvi_yuv_override = 1,
418  .dvi_yuv = 7,
419  .model_string = "Hauppauge WinTV USB Pro (NTSC M/N) V2",
420  },
421  [HPG_WINTV_PRO_PAL] = {
422  .interface = 0,
423  .codec = CODEC_SAA7113,
424  .video_channels = 3,
425  .video_norm = V4L2_STD_PAL,
426  .audio_channels = 1,
427  .radio = 0,
428  .vbi = 1,
429  .tuner = 1,
430  .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
431  .x_offset = 0,
432  .y_offset = 3,
433  .dvi_yuv_override = 1,
434  .dvi_yuv = 7,
435  .model_string = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)",
436  },
438  .interface = 0,
439  .codec = CODEC_SAA7113,
440  .video_channels = 3,
441  .video_norm = V4L2_STD_NTSC,
442  .audio_channels = 1,
443  .radio = 1,
444  .vbi = 1,
445  .tuner = 1,
446  .tuner_type = TUNER_PHILIPS_NTSC_M,
447  .x_offset = 0,
448  .y_offset = 3,
449  .dvi_yuv_override = 1,
450  .dvi_yuv = 7,
451  .model_string = "Hauppauge WinTV USB Pro (NTSC M/N) V3",
452  },
454  .interface = 0,
455  .codec = CODEC_SAA7113,
456  .video_channels = 3,
457  .video_norm = V4L2_STD_PAL,
458  .audio_channels = 1,
459  .radio = 0,
460  .vbi = 1,
461  .tuner = 1,
462  .tuner_type = TUNER_PHILIPS_PAL,
463  .x_offset = 0,
464  .y_offset = 3,
465  .dvi_yuv_override = 1,
466  .dvi_yuv = 7,
467  .model_string = "Hauppauge WinTV USB Pro (PAL B/G)",
468  },
469  [HPG_WINTV_PRO_PAL_I] = {
470  .interface = 0,
471  .codec = CODEC_SAA7113,
472  .video_channels = 3,
473  .video_norm = V4L2_STD_PAL,
474  .audio_channels = 1,
475  .radio = 0,
476  .vbi = 1,
477  .tuner = 1,
478  .tuner_type = TUNER_PHILIPS_PAL,
479  .x_offset = 0,
480  .y_offset = 3,
481  .dvi_yuv_override = 1,
482  .dvi_yuv = 7,
483  .model_string = "Hauppauge WinTV USB Pro (PAL I)",
484  },
486  .interface = -1,
487  .codec = CODEC_SAA7113,
488  .video_channels = 3,
489  .video_norm = V4L2_STD_SECAM,
490  .audio_channels = 1,
491  .radio = 0,
492  .vbi = 1,
493  .tuner = 1,
494  .tuner_type = TUNER_PHILIPS_SECAM,
495  .x_offset = 0,
496  .y_offset = 3,
497  .dvi_yuv_override = 1,
498  .dvi_yuv = 7,
499  .model_string = "Hauppauge WinTV USB Pro (PAL/SECAM L)",
500  },
502  .interface = -1,
503  .codec = CODEC_SAA7113,
504  .video_channels = 3,
505  .video_norm = V4L2_STD_PAL,
506  .audio_channels = 1,
507  .radio = 0,
508  .vbi = 1,
509  .tuner = 1,
510  .tuner_type = TUNER_PHILIPS_PAL,
511  .x_offset = 0,
512  .y_offset = 3,
513  .dvi_yuv_override = 1,
514  .dvi_yuv = 7,
515  .model_string = "Hauppauge WinTV USB Pro (PAL D/K)",
516  },
518  .interface = -1,
519  .codec = CODEC_SAA7113,
520  .video_channels = 3,
521  .video_norm = V4L2_STD_SECAM,
522  .audio_channels = 1,
523  .radio = 0,
524  .vbi = 1,
525  .tuner = 1,
526  .tuner_type = TUNER_PHILIPS_SECAM,
527  .x_offset = 0,
528  .y_offset = 3,
529  .dvi_yuv_override = 1,
530  .dvi_yuv = 7,
531  .model_string = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)",
532  },
534  .interface = -1,
535  .codec = CODEC_SAA7113,
536  .video_channels = 3,
537  .video_norm = V4L2_STD_SECAM,
538  .audio_channels = 1,
539  .radio = 0,
540  .vbi = 1,
541  .tuner = 1,
542  .tuner_type = TUNER_PHILIPS_SECAM,
543  .x_offset = 0,
544  .y_offset = 3,
545  .dvi_yuv_override = 1,
546  .dvi_yuv = 7,
547  .model_string = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2",
548  },
550  .interface = -1,
551  .codec = CODEC_SAA7113,
552  .video_channels = 3,
553  .video_norm = V4L2_STD_PAL,
554  .audio_channels = 1,
555  .radio = 0,
556  .vbi = 1,
557  .tuner = 1,
558  .tuner_type = TUNER_ALPS_TSBE1_PAL,
559  .x_offset = 0,
560  .y_offset = 3,
561  .dvi_yuv_override = 1,
562  .dvi_yuv = 7,
563  .model_string = "Hauppauge WinTV USB Pro (PAL B/G) V2",
564  },
566  .interface = -1,
567  .codec = CODEC_SAA7113,
568  .video_channels = 3,
569  .video_norm = V4L2_STD_PAL,
570  .audio_channels = 1,
571  .radio = 0,
572  .vbi = 1,
573  .tuner = 1,
574  .tuner_type = TUNER_ALPS_TSBE1_PAL,
575  .x_offset = 0,
576  .y_offset = 3,
577  .dvi_yuv_override = 1,
578  .dvi_yuv = 7,
579  .model_string = "Hauppauge WinTV USB Pro (PAL B/G,D/K)",
580  },
582  .interface = -1,
583  .codec = CODEC_SAA7113,
584  .video_channels = 3,
585  .video_norm = V4L2_STD_PAL,
586  .audio_channels = 1,
587  .radio = 0,
588  .vbi = 1,
589  .tuner = 1,
590  .tuner_type = TUNER_LG_PAL_NEW_TAPC,
591  .x_offset = 0,
592  .y_offset = 3,
593  .dvi_yuv_override = 1,
594  .dvi_yuv = 7,
595  .model_string = "Hauppauge WinTV USB Pro (PAL I,D/K)",
596  },
598  .interface = -1,
599  .codec = CODEC_SAA7113,
600  .video_channels = 3,
601  .video_norm = V4L2_STD_NTSC,
602  .audio_channels = 1,
603  .radio = 1,
604  .vbi = 1,
605  .tuner = 1,
606  .tuner_type = TUNER_PHILIPS_NTSC_M,
607  .x_offset = 0,
608  .y_offset = 3,
609  .dvi_yuv_override = 1,
610  .dvi_yuv = 7,
611  .model_string = "Hauppauge WinTV USB Pro (NTSC M/N FM)",
612  },
614  .interface = 0,
615  .codec = CODEC_SAA7113,
616  .video_channels = 3,
617  .video_norm = V4L2_STD_PAL,
618  .audio_channels = 1,
619  .radio = 1,
620  .vbi = 1,
621  .tuner = 1,
622  .tuner_type = TUNER_PHILIPS_PAL,
623  .x_offset = 0,
624  .y_offset = 3,
625  .dvi_yuv_override = 1,
626  .dvi_yuv = 7,
627  .model_string = "Hauppauge WinTV USB Pro (PAL B/G FM)",
628  },
630  .interface = 0,
631  .codec = CODEC_SAA7113,
632  .video_channels = 3,
633  .video_norm = V4L2_STD_PAL,
634  .audio_channels = 1,
635  .radio = 1,
636  .vbi = 1,
637  .tuner = 1,
638  .tuner_type = TUNER_PHILIPS_PAL,
639  .x_offset = 0,
640  .y_offset = 3,
641  .dvi_yuv_override = 1,
642  .dvi_yuv = 7,
643  .model_string = "Hauppauge WinTV USB Pro (PAL I FM)",
644  },
646  .interface = 0,
647  .codec = CODEC_SAA7113,
648  .video_channels = 3,
649  .video_norm = V4L2_STD_PAL,
650  .audio_channels = 1,
651  .radio = 1,
652  .vbi = 1,
653  .tuner = 1,
654  .tuner_type = TUNER_PHILIPS_PAL,
655  .x_offset = 0,
656  .y_offset = 3,
657  .dvi_yuv_override = 1,
658  .dvi_yuv = 7,
659  .model_string = "Hauppauge WinTV USB Pro (PAL D/K FM)",
660  },
662  .interface = 0,
663  .codec = CODEC_SAA7113,
664  .video_channels = 3,
665  .video_norm = V4L2_STD_PAL,
666  .audio_channels = 1,
667  .radio = 1,
668  .vbi = 1,
669  .tuner = 1,
670  .tuner_type = TUNER_MICROTUNE_4049FM5,
671  .x_offset = 0,
672  .y_offset = 3,
673  .dvi_yuv_override = 1,
674  .dvi_yuv = 7,
675  .model_string = "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)",
676  },
678  .interface = 0,
679  .codec = CODEC_SAA7113,
680  .video_channels = 3,
681  .video_norm = V4L2_STD_PAL,
682  .audio_channels = 1,
683  .radio = 1,
684  .vbi = 1,
685  .tuner = 1,
686  .tuner_type = TUNER_MICROTUNE_4049FM5,
687  .x_offset = 0,
688  .y_offset = 3,
689  .dvi_yuv_override = 1,
690  .dvi_yuv = 7,
691  .model_string = "Hauppauge WinTV USB Pro (Temic PAL B/G FM)",
692  },
694  .interface = 0,
695  .codec = CODEC_SAA7113,
696  .video_channels = 3,
697  .video_norm = V4L2_STD_PAL,
698  .audio_channels = 1,
699  .radio = 1,
700  .vbi = 1,
701  .tuner = 1,
702  .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
703  .x_offset = 0,
704  .y_offset = 3,
705  .dvi_yuv_override = 1,
706  .dvi_yuv = 7,
707  .model_string = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)",
708  },
710  .interface = 0,
711  .codec = CODEC_SAA7113,
712  .video_channels = 3,
713  .video_norm = V4L2_STD_NTSC,
714  .audio_channels = 1,
715  .radio = 1,
716  .vbi = 1,
717  .tuner = 1,
718  .tuner_type = TUNER_PHILIPS_NTSC_M,
719  .x_offset = 0,
720  .y_offset = 3,
721  .dvi_yuv_override = 1,
722  .dvi_yuv = 7,
723  .model_string = "Hauppauge WinTV USB Pro (NTSC M/N FM) V2",
724  },
725  [CAMTEL_TVB330] = {
726  .interface = -1,
727  .codec = CODEC_SAA7113,
728  .video_channels = 3,
729  .video_norm = V4L2_STD_NTSC,
730  .audio_channels = 1,
731  .radio = 1,
732  .vbi = 1,
733  .tuner = 1,
734  .tuner_type = TUNER_PHILIPS_NTSC_M,
735  .x_offset = 5,
736  .y_offset = 5,
737  .model_string = "Camtel Technology USB TV Genie Pro FM Model TVB330",
738  },
740  .interface = -1,
741  .codec = CODEC_SAA7113,
742  .video_channels = 2,
743  .video_norm = V4L2_STD_PAL,
744  .audio_channels = 0,
745  .radio = 0,
746  .vbi = 1,
747  .tuner = 0,
748  .tuner_type = 0,
749  .x_offset = 0,
750  .y_offset = 3,
751  .dvi_yuv_override = 1,
752  .dvi_yuv = 7,
753  .model_string = "Digital Video Creator I",
754  },
756  .interface = -1,
757  .codec = CODEC_SAA7111,
758  .video_channels = 2,
759  .video_norm = V4L2_STD_NTSC,
760  .audio_channels = 0,
761  .radio = 0,
762  .vbi = 1,
763  .tuner = 0,
764  .tuner_type = 0,
765  .x_offset = 82,
766  .y_offset = 20,
767  .dvi_yuv_override = 1,
768  .dvi_yuv = 7,
769  .model_string = "Global Village GV-007 (NTSC)",
770  },
772  .interface = 0,
773  .codec = CODEC_SAA7113,
774  .video_channels = 2,
775  .video_norm = V4L2_STD_NTSC,
776  .audio_channels = 0,
777  .radio = 0,
778  .vbi = 1,
779  .tuner = 0,
780  .tuner_type = 0,
781  .x_offset = 0,
782  .y_offset = 3,
783  .dvi_yuv_override = 1,
784  .dvi_yuv = 7,
785  .model_string = "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)",
786  },
788  .interface = 0,
789  .codec = CODEC_SAA7113,
790  .video_channels = 2,
791  .video_norm = V4L2_STD_PAL,
792  .audio_channels = 0,
793  .radio = 0,
794  .vbi = 1,
795  .tuner = 0,
796  .tuner_type = 0,
797  .x_offset = 0,
798  .y_offset = 3,
799  .dvi_yuv_override = 1,
800  .dvi_yuv = 7,
801  .model_string = "Dazzle Fusion Model DVC-80 Rev 1 (PAL)",
802  },
804  .interface = 0,
805  .codec = CODEC_SAA7113,
806  .video_channels = 2,
807  .video_norm = V4L2_STD_SECAM,
808  .audio_channels = 0,
809  .radio = 0,
810  .vbi = 1,
811  .tuner = 0,
812  .tuner_type = 0,
813  .x_offset = 0,
814  .y_offset = 3,
815  .dvi_yuv_override = 1,
816  .dvi_yuv = 7,
817  .model_string = "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)",
818  },
819  [ESKAPE_LABS_MYTV2GO] = {
820  .interface = 0,
821  .codec = CODEC_SAA7113,
822  .video_channels = 2,
823  .video_norm = V4L2_STD_PAL,
824  .audio_channels = 1,
825  .radio = 1,
826  .vbi = 1,
827  .tuner = 1,
828  .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
829  .x_offset = 0,
830  .y_offset = 3,
831  .dvi_yuv_override = 1,
832  .dvi_yuv = 7,
833  .model_string = "Eskape Labs MyTV2Go",
834  },
835  [PINNA_PCTV_USB_PAL] = {
836  .interface = -1,
837  .codec = CODEC_SAA7111,
838  .video_channels = 3,
839  .video_norm = V4L2_STD_PAL,
840  .audio_channels = 1,
841  .radio = 0,
842  .vbi = 0,
843  .tuner = 1,
844  .tuner_type = TUNER_TEMIC_4066FY5_PAL_I,
845  .x_offset = -1,
846  .y_offset = -1,
847  .model_string = "Pinnacle Studio PCTV USB (PAL)",
848  },
850  .interface = -1,
851  .codec = CODEC_SAA7111,
852  .video_channels = 3,
853  .video_norm = V4L2_STD_SECAM,
854  .audio_channels = 1,
855  .radio = 0,
856  .vbi = 1,
857  .tuner = 1,
858  .tuner_type = TUNER_PHILIPS_SECAM,
859  .x_offset = -1,
860  .y_offset = -1,
861  .model_string = "Pinnacle Studio PCTV USB (SECAM)",
862  },
864  .interface = -1,
865  .codec = CODEC_SAA7111,
866  .video_channels = 3,
867  .video_norm = V4L2_STD_PAL,
868  .audio_channels = 1,
869  .radio = 1,
870  .vbi = 1,
871  .tuner = 1,
872  .tuner_type = TUNER_PHILIPS_PAL,
873  .x_offset = 128,
874  .y_offset = 23,
875  .model_string = "Pinnacle Studio PCTV USB (PAL) FM",
876  },
877  [MIRO_PCTV_USB] = {
878  .interface = -1,
879  .codec = CODEC_SAA7111,
880  .video_channels = 3,
881  .video_norm = V4L2_STD_PAL,
882  .audio_channels = 1,
883  .radio = 0,
884  .vbi = 1,
885  .tuner = 1,
886  .tuner_type = TUNER_PHILIPS_PAL,
887  .x_offset = -1,
888  .y_offset = -1,
889  .model_string = "Miro PCTV USB",
890  },
892  .interface = -1,
893  .codec = CODEC_SAA7111,
894  .video_channels = 3,
895  .video_norm = V4L2_STD_NTSC,
896  .audio_channels = 1,
897  .radio = 1,
898  .vbi = 1,
899  .tuner = 1,
900  .tuner_type = TUNER_PHILIPS_NTSC_M,
901  .x_offset = -1,
902  .y_offset = -1,
903  .model_string = "Pinnacle Studio PCTV USB (NTSC) FM",
904  },
906  .interface = -1,
907  .codec = CODEC_SAA7111,
908  .video_channels = 3,
909  .video_norm = V4L2_STD_NTSC,
910  .audio_channels = 1,
911  .radio = 1,
912  .vbi = 1,
913  .tuner = 1,
914  .tuner_type = TUNER_PHILIPS_NTSC_M,
915  .x_offset = -1,
916  .y_offset = -1,
917  .model_string = "Pinnacle Studio PCTV USB (NTSC) FM V3",
918  },
920  .interface = -1,
921  .codec = CODEC_SAA7113,
922  .video_channels = 3,
923  .video_norm = V4L2_STD_PAL,
924  .audio_channels = 1,
925  .radio = 1,
926  .vbi = 1,
927  .tuner = 1,
928  .tuner_type = TUNER_TEMIC_4009FR5_PAL,
929  .x_offset = 0,
930  .y_offset = 3,
931  .dvi_yuv_override = 1,
932  .dvi_yuv = 7,
933  .model_string = "Pinnacle Studio PCTV USB (PAL) FM V2",
934  },
936  .interface = -1,
937  .codec = CODEC_SAA7111,
938  .video_channels = 3,
939  .video_norm = V4L2_STD_NTSC,
940  .audio_channels = 1,
941  .radio = 1,
942  .vbi = 1,
943  .tuner = 1,
944  .tuner_type = TUNER_TEMIC_4039FR5_NTSC,
945  .x_offset = 0,
946  .y_offset = 3,
947  .dvi_yuv_override = 1,
948  .dvi_yuv = 7,
949  .model_string = "Pinnacle Studio PCTV USB (NTSC) FM V2",
950  },
952  .interface = -1,
953  .codec = CODEC_SAA7113,
954  .video_channels = 3,
955  .video_norm = V4L2_STD_PAL,
956  .audio_channels = 1,
957  .radio = 1,
958  .vbi = 1,
959  .tuner = 1,
960  .tuner_type = TUNER_TEMIC_4009FR5_PAL,
961  .x_offset = 0,
962  .y_offset = 3,
963  .dvi_yuv_override = 1,
964  .dvi_yuv = 7,
965  .model_string = "Pinnacle Studio PCTV USB (PAL) FM V3",
966  },
968  .interface = -1,
969  .codec = CODEC_SAA7113,
970  .video_channels = 2,
971  .video_norm = V4L2_STD_NTSC,
972  .audio_channels = 1,
973  .radio = 0,
974  .vbi = 1,
975  .tuner = 0,
976  .tuner_type = 0,
977  .x_offset = 0,
978  .y_offset = 3,
979  .dvi_yuv_override = 1,
980  .dvi_yuv = 7,
981  .model_string = "Pinnacle Studio Linx Video input cable (NTSC)",
982  },
984  .interface = -1,
985  .codec = CODEC_SAA7113,
986  .video_channels = 2,
987  .video_norm = V4L2_STD_PAL,
988  .audio_channels = 1,
989  .radio = 0,
990  .vbi = 1,
991  .tuner = 0,
992  .tuner_type = 0,
993  .x_offset = 0,
994  .y_offset = 3,
995  .dvi_yuv_override = 1,
996  .dvi_yuv = 7,
997  .model_string = "Pinnacle Studio Linx Video input cable (PAL)",
998  },
1000  .interface = -1,
1001  .codec = CODEC_SAA7113,
1002  .video_channels = 3,
1003  .video_norm = V4L2_STD_PAL,
1004  .audio_channels = 1,
1005  .radio = 1,
1006  .vbi = 1,
1007  .tuner = 1,
1008  .tuner_type = TUNER_TEMIC_4009FR5_PAL,
1009  .x_offset = 0,
1010  .y_offset = 3,
1011  .dvi_yuv_override = 1,
1012  .dvi_yuv = 7,
1013  .model_string = "Pinnacle PCTV Bungee USB (PAL) FM",
1014  },
1015  [HPG_WINTV] = {
1016  .interface = -1,
1017  .codec = CODEC_SAA7111,
1018  .video_channels = 3,
1019  .video_norm = V4L2_STD_NTSC,
1020  .audio_channels = 1,
1021  .radio = 0,
1022  .vbi = 1,
1023  .tuner = 1,
1024  .tuner_type = TUNER_PHILIPS_NTSC_M,
1025  .x_offset = -1,
1026  .y_offset = -1,
1027  .model_string = "Hauppauge WinTv-USB",
1028  },
1029  [MICROCAM_NTSC] = {
1030  .interface = -1,
1031  .codec = CODEC_WEBCAM,
1032  .video_channels = 1,
1033  .video_norm = V4L2_STD_NTSC,
1034  .audio_channels = 0,
1035  .radio = 0,
1036  .vbi = 0,
1037  .tuner = 0,
1038  .tuner_type = 0,
1039  .x_offset = 71,
1040  .y_offset = 15,
1041  .model_string = "Nogatech USB MicroCam NTSC (NV3000N)",
1042  },
1043  [MICROCAM_PAL] = {
1044  .interface = -1,
1045  .codec = CODEC_WEBCAM,
1046  .video_channels = 1,
1047  .video_norm = V4L2_STD_PAL,
1048  .audio_channels = 0,
1049  .radio = 0,
1050  .vbi = 0,
1051  .tuner = 0,
1052  .tuner_type = 0,
1053  .x_offset = 71,
1054  .y_offset = 18,
1055  .model_string = "Nogatech USB MicroCam PAL (NV3001P)",
1056  },
1057 };
1058 const int usbvision_device_data_size = ARRAY_SIZE(usbvision_device_data);
1059 
1060 /* Supported Devices */
1061 
1063  { USB_DEVICE(0x0a6f, 0x0400), .driver_info = XANBOO },
1064  { USB_DEVICE(0x050d, 0x0106), .driver_info = BELKIN_VIDEOBUS_II },
1065  { USB_DEVICE(0x050d, 0x0207), .driver_info = BELKIN_VIDEOBUS },
1066  { USB_DEVICE(0x050d, 0x0208), .driver_info = BELKIN_USB_VIDEOBUS_II },
1067  { USB_DEVICE(0x0571, 0x0002), .driver_info = ECHOFX_INTERVIEW_LITE },
1068  { USB_DEVICE(0x0573, 0x0003), .driver_info = USBGEAR_USBG_V1 },
1069  { USB_DEVICE(0x0573, 0x0400), .driver_info = D_LINK_V100 },
1070  { USB_DEVICE(0x0573, 0x2000), .driver_info = X10_USB_CAMERA },
1071  { USB_DEVICE(0x0573, 0x2d00), .driver_info = HPG_WINTV_LIVE_PAL_BG },
1072  { USB_DEVICE(0x0573, 0x2d01), .driver_info = HPG_WINTV_LIVE_PRO_NTSC_MN },
1073  { USB_DEVICE(0x0573, 0x2101), .driver_info = ZORAN_PMD_NOGATECH },
1074  { USB_DEVICE(0x0573, 0x3000), .driver_info = MICROCAM_NTSC },
1075  { USB_DEVICE(0x0573, 0x3001), .driver_info = MICROCAM_PAL },
1076  { USB_DEVICE(0x0573, 0x4100), .driver_info = NOGATECH_USB_TV_NTSC_FM },
1077  { USB_DEVICE(0x0573, 0x4110), .driver_info = PNY_USB_TV_NTSC_FM },
1078  { USB_DEVICE(0x0573, 0x4450), .driver_info = PV_PLAYTV_USB_PRO_PAL_FM },
1079  { USB_DEVICE(0x0573, 0x4550), .driver_info = ZT_721 },
1080  { USB_DEVICE(0x0573, 0x4d00), .driver_info = HPG_WINTV_NTSC_MN },
1081  { USB_DEVICE(0x0573, 0x4d01), .driver_info = HPG_WINTV_PAL_BG },
1082  { USB_DEVICE(0x0573, 0x4d02), .driver_info = HPG_WINTV_PAL_I },
1083  { USB_DEVICE(0x0573, 0x4d03), .driver_info = HPG_WINTV_PAL_SECAM_L },
1084  { USB_DEVICE(0x0573, 0x4d04), .driver_info = HPG_WINTV_PAL_D_K },
1085  { USB_DEVICE(0x0573, 0x4d10), .driver_info = HPG_WINTV_NTSC_FM },
1086  { USB_DEVICE(0x0573, 0x4d11), .driver_info = HPG_WINTV_PAL_BG_FM },
1087  { USB_DEVICE(0x0573, 0x4d12), .driver_info = HPG_WINTV_PAL_I_FM },
1088  { USB_DEVICE(0x0573, 0x4d14), .driver_info = HPG_WINTV_PAL_D_K_FM },
1089  { USB_DEVICE(0x0573, 0x4d2a), .driver_info = HPG_WINTV_PRO_NTSC_MN },
1090  { USB_DEVICE(0x0573, 0x4d2b), .driver_info = HPG_WINTV_PRO_NTSC_MN_V2 },
1091  { USB_DEVICE(0x0573, 0x4d2c), .driver_info = HPG_WINTV_PRO_PAL },
1092  { USB_DEVICE(0x0573, 0x4d20), .driver_info = HPG_WINTV_PRO_NTSC_MN_V3 },
1093  { USB_DEVICE(0x0573, 0x4d21), .driver_info = HPG_WINTV_PRO_PAL_BG },
1094  { USB_DEVICE(0x0573, 0x4d22), .driver_info = HPG_WINTV_PRO_PAL_I },
1095  { USB_DEVICE(0x0573, 0x4d23), .driver_info = HPG_WINTV_PRO_PAL_SECAM_L },
1096  { USB_DEVICE(0x0573, 0x4d24), .driver_info = HPG_WINTV_PRO_PAL_D_K },
1097  { USB_DEVICE(0x0573, 0x4d25), .driver_info = HPG_WINTV_PRO_PAL_SECAM },
1098  { USB_DEVICE(0x0573, 0x4d26), .driver_info = HPG_WINTV_PRO_PAL_SECAM_V2 },
1099  { USB_DEVICE(0x0573, 0x4d27), .driver_info = HPG_WINTV_PRO_PAL_BG_V2 },
1100  { USB_DEVICE(0x0573, 0x4d28), .driver_info = HPG_WINTV_PRO_PAL_BG_D_K },
1101  { USB_DEVICE(0x0573, 0x4d29), .driver_info = HPG_WINTV_PRO_PAL_I_D_K },
1102  { USB_DEVICE(0x0573, 0x4d30), .driver_info = HPG_WINTV_PRO_NTSC_MN_FM },
1103  { USB_DEVICE(0x0573, 0x4d31), .driver_info = HPG_WINTV_PRO_PAL_BG_FM },
1104  { USB_DEVICE(0x0573, 0x4d32), .driver_info = HPG_WINTV_PRO_PAL_I_FM },
1105  { USB_DEVICE(0x0573, 0x4d34), .driver_info = HPG_WINTV_PRO_PAL_D_K_FM },
1106  { USB_DEVICE(0x0573, 0x4d35), .driver_info = HPG_WINTV_PRO_TEMIC_PAL_FM },
1107  { USB_DEVICE(0x0573, 0x4d36), .driver_info = HPG_WINTV_PRO_TEMIC_PAL_BG_FM },
1108  { USB_DEVICE(0x0573, 0x4d37), .driver_info = HPG_WINTV_PRO_PAL_FM },
1109  { USB_DEVICE(0x0573, 0x4d38), .driver_info = HPG_WINTV_PRO_NTSC_MN_FM_V2 },
1110  { USB_DEVICE(0x0768, 0x0006), .driver_info = CAMTEL_TVB330 },
1111  { USB_DEVICE(0x07d0, 0x0001), .driver_info = DIGITAL_VIDEO_CREATOR_I },
1112  { USB_DEVICE(0x07d0, 0x0002), .driver_info = GLOBAL_VILLAGE_GV_007_NTSC },
1113  { USB_DEVICE(0x07d0, 0x0003), .driver_info = DAZZLE_DVC_50_REV_1_NTSC },
1114  { USB_DEVICE(0x07d0, 0x0004), .driver_info = DAZZLE_DVC_80_REV_1_PAL },
1115  { USB_DEVICE(0x07d0, 0x0005), .driver_info = DAZZLE_DVC_90_REV_1_SECAM },
1116  { USB_DEVICE(0x07f8, 0x9104), .driver_info = ESKAPE_LABS_MYTV2GO },
1117  { USB_DEVICE(0x2304, 0x010d), .driver_info = PINNA_PCTV_USB_PAL },
1118  { USB_DEVICE(0x2304, 0x0109), .driver_info = PINNA_PCTV_USB_SECAM },
1119  { USB_DEVICE(0x2304, 0x0110), .driver_info = PINNA_PCTV_USB_PAL_FM },
1120  { USB_DEVICE(0x2304, 0x0111), .driver_info = MIRO_PCTV_USB },
1121  { USB_DEVICE(0x2304, 0x0112), .driver_info = PINNA_PCTV_USB_NTSC_FM },
1122  { USB_DEVICE(0x2304, 0x0113), .driver_info = PINNA_PCTV_USB_NTSC_FM_V3 },
1123  { USB_DEVICE(0x2304, 0x0210), .driver_info = PINNA_PCTV_USB_PAL_FM_V2 },
1124  { USB_DEVICE(0x2304, 0x0212), .driver_info = PINNA_PCTV_USB_NTSC_FM_V2 },
1125  { USB_DEVICE(0x2304, 0x0214), .driver_info = PINNA_PCTV_USB_PAL_FM_V3 },
1126  { USB_DEVICE(0x2304, 0x0300), .driver_info = PINNA_LINX_VD_IN_CAB_NTSC },
1127  { USB_DEVICE(0x2304, 0x0301), .driver_info = PINNA_LINX_VD_IN_CAB_PAL },
1128  { USB_DEVICE(0x2304, 0x0419), .driver_info = PINNA_PCTV_BUNGEE_PAL_FM },
1129  { USB_DEVICE(0x2400, 0x4200), .driver_info = HPG_WINTV },
1130  { }, /* terminate list */
1131 };
1132 
1133 MODULE_DEVICE_TABLE(usb, usbvision_table);