V4L/DVB (5517): Usbvision: store the device database more efficiently
[linux-2.6/mini2440.git] / drivers / media / video / usbvision / usbvision-cards.c
blobc632f125252c4d37998182e43c48947700956571
1 /*
2 * usbvision-cards.c
3 * usbvision cards definition file
5 * Copyright (c) 1999-2005 Joerg Heckenbach <joerg@heckenbach-aw.de>
7 * This module is part of usbvision driver project.
8 * Updates to driver completed by Dwaine P. Garden
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.
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.
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.
26 #include <linux/list.h>
27 #include <linux/i2c.h>
28 #include <media/v4l2-dev.h>
29 #include <media/tuner.h>
30 #include "usbvision.h"
31 #include "usbvision-cards.h"
33 /* Supported Devices: A table for usbvision.c*/
34 struct usbvision_device_data_st usbvision_device_data[] = {
35 [DUMMY_DEVICE] = {
36 .Interface = -1,
37 .Codec = CODEC_SAA7111,
38 .VideoChannels = 3,
39 .VideoNorm = V4L2_STD_NTSC,
40 .AudioChannels = 1,
41 .Radio = 1,
42 .vbi = 1,
43 .Tuner = 1,
44 .TunerType = TUNER_PHILIPS_NTSC_M,
45 .X_Offset = -1,
46 .Y_Offset = -1,
47 .ModelString = "Custom Dummy USBVision Device",
49 [XANBOO] = {
50 .Interface = -1,
51 .Codec = CODEC_SAA7113,
52 .VideoChannels = 4,
53 .VideoNorm = V4L2_STD_NTSC,
54 .AudioChannels = 1,
55 .Radio = 0,
56 .vbi = 1,
57 .Tuner = 0,
58 .TunerType = 0,
59 .X_Offset = -1,
60 .Y_Offset = -1,
61 .ModelString = "Xanboo",
63 [BELKIN_VIDEOBUS_II] = {
64 .Interface = -1,
65 .Codec = CODEC_SAA7113,
66 .VideoChannels = 2,
67 .VideoNorm = V4L2_STD_PAL,
68 .AudioChannels = 1,
69 .Radio = 0,
70 .vbi = 1,
71 .Tuner = 0,
72 .TunerType = 0,
73 .X_Offset = 0,
74 .Y_Offset = 3,
75 .Dvi_yuv_override = 1,
76 .Dvi_yuv = 7,
77 .ModelString = "Belkin USB VideoBus II Adapter",
79 [BELKIN_VIDEOBUS] = {
80 .Interface = -1,
81 .Codec = CODEC_SAA7111,
82 .VideoChannels = 2,
83 .VideoNorm = V4L2_STD_NTSC,
84 .AudioChannels = 1,
85 .Radio = 0,
86 .vbi = 1,
87 .Tuner = 0,
88 .TunerType = 0,
89 .X_Offset = -1,
90 .Y_Offset = -1,
91 .ModelString = "Belkin Components USB VideoBus",
93 [BELKIN_USB_VIDEOBUS_II] = {
94 .Interface = -1,
95 .Codec = CODEC_SAA7113,
96 .VideoChannels = 2,
97 .VideoNorm = V4L2_STD_PAL,
98 .AudioChannels = 1,
99 .Radio = 0,
100 .vbi = 1,
101 .Tuner = 0,
102 .TunerType = 0,
103 .X_Offset = 0,
104 .Y_Offset = 3,
105 .Dvi_yuv_override = 1,
106 .Dvi_yuv = 7,
107 .ModelString = "Belkin USB VideoBus II",
109 [ECHOFX_INTERVIEW_LITE] = {
110 .Interface = 0,
111 .Codec = CODEC_SAA7111,
112 .VideoChannels = 2,
113 .VideoNorm = V4L2_STD_PAL,
114 .AudioChannels = 0,
115 .Radio = 0,
116 .vbi = 1,
117 .Tuner = 0,
118 .TunerType = 0,
119 .X_Offset = -1,
120 .Y_Offset = -1,
121 .Dvi_yuv_override = 1,
122 .Dvi_yuv = 7,
123 .ModelString = "echoFX InterView Lite",
125 [USBGEAR_USBG_V1] = {
126 .Interface = -1,
127 .Codec = CODEC_SAA7111,
128 .VideoChannels = 2,
129 .VideoNorm = V4L2_STD_NTSC,
130 .AudioChannels = 1,
131 .Radio = 0,
132 .vbi = 1,
133 .Tuner = 0,
134 .TunerType = 0,
135 .X_Offset = -1,
136 .Y_Offset = -1,
137 .ModelString = "USBGear USBG-V1 resp. HAMA USB",
139 [D_LINK_V100] = {
140 .Interface = -1,
141 .Codec = CODEC_SAA7113,
142 .VideoChannels = 4,
143 .VideoNorm = V4L2_STD_NTSC,
144 .AudioChannels = 0,
145 .Radio = 0,
146 .vbi = 1,
147 .Tuner = 0,
148 .TunerType = 0,
149 .X_Offset = 0,
150 .Y_Offset = 3,
151 .Dvi_yuv_override = 1,
152 .Dvi_yuv = 7,
153 .ModelString = "D-Link V100",
155 [X10_USB_CAMERA] = {
156 .Interface = -1,
157 .Codec = CODEC_SAA7111,
158 .VideoChannels = 2,
159 .VideoNorm = V4L2_STD_NTSC,
160 .AudioChannels = 1,
161 .Radio = 0,
162 .vbi = 1,
163 .Tuner = 0,
164 .TunerType = 0,
165 .X_Offset = -1,
166 .Y_Offset = -1,
167 .ModelString = "X10 USB Camera",
169 [HPG_WINTV_LIVE_PAL_BG] = {
170 .Interface = -1,
171 .Codec = CODEC_SAA7111,
172 .VideoChannels = 2,
173 .VideoNorm = V4L2_STD_PAL,
174 .AudioChannels = 1,
175 .Radio = 0,
176 .vbi = 1,
177 .Tuner = 0,
178 .TunerType = 0,
179 .X_Offset = -1,
180 .Y_Offset = 3,
181 .Dvi_yuv_override = 1,
182 .Dvi_yuv = 7,
183 .ModelString = "Hauppauge WinTV USB Live (PAL B/G)",
185 [HPG_WINTV_LIVE_PRO_NTSC_MN] = {
186 .Interface = -1,
187 .Codec = CODEC_SAA7113,
188 .VideoChannels = 2,
189 .VideoNorm = V4L2_STD_NTSC,
190 .AudioChannels = 0,
191 .Radio = 0,
192 .vbi = 1,
193 .Tuner = 0,
194 .TunerType = 0,
195 .X_Offset = 0,
196 .Y_Offset = 3,
197 .Dvi_yuv_override = 1,
198 .Dvi_yuv = 7,
199 .ModelString = "Hauppauge WinTV USB Live Pro (NTSC M/N)",
201 [ZORAN_PMD_NOGATECH] = {
202 .Interface = -1,
203 .Codec = CODEC_SAA7113,
204 .VideoChannels = 2,
205 .VideoNorm = V4L2_STD_PAL,
206 .AudioChannels = 2,
207 .Radio = 0,
208 .vbi = 1,
209 .Tuner = 0,
210 .TunerType = 0,
211 .X_Offset = 0,
212 .Y_Offset = 3,
213 .Dvi_yuv_override = 1,
214 .Dvi_yuv = 7,
215 .ModelString = "Zoran Co. PMD (Nogatech) AV-grabber Manhattan",
217 [NOGATECH_USB_TV_NTSC_FM] = {
218 .Interface = -1,
219 .Codec = CODEC_SAA7111,
220 .VideoChannels = 3,
221 .VideoNorm = V4L2_STD_NTSC,
222 .AudioChannels = 1,
223 .Radio = 1,
224 .vbi = 1,
225 .Tuner = 1,
226 .TunerType = TUNER_PHILIPS_NTSC_M,
227 .X_Offset = -1,
228 .Y_Offset = 20,
229 .ModelString = "Nogatech USB-TV (NTSC) FM",
231 [PNY_USB_TV_NTSC_FM] = {
232 .Interface = -1,
233 .Codec = CODEC_SAA7111,
234 .VideoChannels = 3,
235 .VideoNorm = V4L2_STD_NTSC,
236 .AudioChannels = 1,
237 .Radio = 1,
238 .vbi = 1,
239 .Tuner = 1,
240 .TunerType = TUNER_PHILIPS_NTSC_M,
241 .X_Offset = -1,
242 .Y_Offset = 20,
243 .ModelString = "PNY USB-TV (NTSC) FM",
245 [PV_PLAYTV_USB_PRO_PAL_FM] = {
246 .Interface = 0,
247 .Codec = CODEC_SAA7113,
248 .VideoChannels = 3,
249 .VideoNorm = V4L2_STD_PAL,
250 .AudioChannels = 1,
251 .Radio = 1,
252 .vbi = 1,
253 .Tuner = 1,
254 .TunerType = TUNER_PHILIPS_PAL,
255 .X_Offset = 0,
256 .Y_Offset = 3,
257 .Dvi_yuv_override = 1,
258 .Dvi_yuv = 7,
259 .ModelString = "PixelView PlayTv-USB PRO (PAL) FM",
261 [ZT_721] = {
262 .Interface = 0,
263 .Codec = CODEC_SAA7113,
264 .VideoChannels = 3,
265 .VideoNorm = V4L2_STD_PAL,
266 .AudioChannels = 1,
267 .Radio = 1,
268 .vbi = 1,
269 .Tuner = 1,
270 .TunerType = TUNER_PHILIPS_PAL,
271 .X_Offset = 0,
272 .Y_Offset = 3,
273 .Dvi_yuv_override = 1,
274 .Dvi_yuv = 7,
275 .ModelString = "ZTV ZT-721 2.4GHz USB A/V Receiver",
277 [HPG_WINTV_NTSC_MN] = {
278 .Interface = -1,
279 .Codec = CODEC_SAA7111,
280 .VideoChannels = 3,
281 .VideoNorm = V4L2_STD_NTSC,
282 .AudioChannels = 1,
283 .Radio = 0,
284 .vbi = 1,
285 .Tuner = 1,
286 .TunerType = TUNER_PHILIPS_NTSC_M,
287 .X_Offset = -1,
288 .Y_Offset = 20,
289 .ModelString = "Hauppauge WinTV USB (NTSC M/N)",
291 [HPG_WINTV_PAL_BG] = {
292 .Interface = -1,
293 .Codec = CODEC_SAA7111,
294 .VideoChannels = 3,
295 .VideoNorm = V4L2_STD_PAL,
296 .AudioChannels = 1,
297 .Radio = 0,
298 .vbi = 1,
299 .Tuner = 1,
300 .TunerType = TUNER_PHILIPS_PAL,
301 .X_Offset = -1,
302 .Y_Offset = -1,
303 .ModelString = "Hauppauge WinTV USB (PAL B/G)",
305 [HPG_WINTV_PAL_I] = {
306 .Interface = -1,
307 .Codec = CODEC_SAA7111,
308 .VideoChannels = 3,
309 .VideoNorm = V4L2_STD_PAL,
310 .AudioChannels = 1,
311 .Radio = 0,
312 .vbi = 1,
313 .Tuner = 1,
314 .TunerType = TUNER_PHILIPS_PAL,
315 .X_Offset = -1,
316 .Y_Offset = -1,
317 .ModelString = "Hauppauge WinTV USB (PAL I)",
319 [HPG_WINTV_PAL_SECAM_L] = {
320 .Interface = -1,
321 .Codec = CODEC_SAA7111,
322 .VideoChannels = 3,
323 .VideoNorm = V4L2_STD_SECAM,
324 .AudioChannels = 1,
325 .Radio = 0,
326 .vbi = 1,
327 .Tuner = 1,
328 .TunerType = TUNER_PHILIPS_SECAM,
329 .X_Offset = -1,
330 .Y_Offset = -1,
331 .ModelString = "Hauppauge WinTV USB (PAL/SECAM L)",
333 [HPG_WINTV_PAL_D_K] = {
334 .Interface = -1,
335 .Codec = CODEC_SAA7111,
336 .VideoChannels = 3,
337 .VideoNorm = V4L2_STD_PAL,
338 .AudioChannels = 1,
339 .Radio = 0,
340 .vbi = 1,
341 .Tuner = 1,
342 .TunerType = TUNER_PHILIPS_PAL,
343 .X_Offset = -1,
344 .Y_Offset = -1,
345 .ModelString = "Hauppauge WinTV USB (PAL D/K)",
347 [HPG_WINTV_NTSC_FM] = {
348 .Interface = -1,
349 .Codec = CODEC_SAA7111,
350 .VideoChannels = 3,
351 .VideoNorm = V4L2_STD_NTSC,
352 .AudioChannels = 1,
353 .Radio = 1,
354 .vbi = 1,
355 .Tuner = 1,
356 .TunerType = TUNER_PHILIPS_NTSC_M,
357 .X_Offset = -1,
358 .Y_Offset = -1,
359 .ModelString = "Hauppauge WinTV USB (NTSC FM)",
361 [HPG_WINTV_PAL_BG_FM] = {
362 .Interface = -1,
363 .Codec = CODEC_SAA7111,
364 .VideoChannels = 3,
365 .VideoNorm = V4L2_STD_PAL,
366 .AudioChannels = 1,
367 .Radio = 1,
368 .vbi = 1,
369 .Tuner = 1,
370 .TunerType = TUNER_PHILIPS_PAL,
371 .X_Offset = -1,
372 .Y_Offset = -1,
373 .ModelString = "Hauppauge WinTV USB (PAL B/G FM)",
375 [HPG_WINTV_PAL_I_FM] = {
376 .Interface = -1,
377 .Codec = CODEC_SAA7111,
378 .VideoChannels = 3,
379 .VideoNorm = V4L2_STD_PAL,
380 .AudioChannels = 1,
381 .Radio = 1,
382 .vbi = 1,
383 .Tuner = 1,
384 .TunerType = TUNER_PHILIPS_PAL,
385 .X_Offset = -1,
386 .Y_Offset = -1,
387 .ModelString = "Hauppauge WinTV USB (PAL I FM)",
389 [HPG_WINTV_PAL_D_K_FM] = {
390 .Interface = -1,
391 .Codec = CODEC_SAA7111,
392 .VideoChannels = 3,
393 .VideoNorm = V4L2_STD_PAL,
394 .AudioChannels = 1,
395 .Radio = 1,
396 .vbi = 1,
397 .Tuner = 1,
398 .TunerType = TUNER_PHILIPS_PAL,
399 .X_Offset = -1,
400 .Y_Offset = -1,
401 .ModelString = "Hauppauge WinTV USB (PAL D/K FM)",
403 [HPG_WINTV_PRO_NTSC_MN] = {
404 .Interface = 0,
405 .Codec = CODEC_SAA7113,
406 .VideoChannels = 3,
407 .VideoNorm = V4L2_STD_NTSC,
408 .AudioChannels = 1,
409 .Radio = 1,
410 .vbi = 1,
411 .Tuner = 1,
412 .TunerType = TUNER_MICROTUNE_4049FM5,
413 .X_Offset = 0,
414 .Y_Offset = 3,
415 .Dvi_yuv_override = 1,
416 .Dvi_yuv = 7,
417 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N)",
419 [HPG_WINTV_PRO_NTSC_MN_V2] = {
420 .Interface = 0,
421 .Codec = CODEC_SAA7113,
422 .VideoChannels = 3,
423 .VideoNorm = V4L2_STD_NTSC,
424 .AudioChannels = 1,
425 .Radio = 1,
426 .vbi = 1,
427 .Tuner = 1,
428 .TunerType = TUNER_MICROTUNE_4049FM5,
429 .X_Offset = 0,
430 .Y_Offset = 3,
431 .Dvi_yuv_override = 1,
432 .Dvi_yuv = 7,
433 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N) V2",
435 [HPG_WINTV_PRO_PAL] = {
436 .Interface = 0,
437 .Codec = CODEC_SAA7113,
438 .VideoChannels = 3,
439 .VideoNorm = V4L2_STD_PAL,
440 .AudioChannels = 1,
441 .Radio = 0,
442 .vbi = 1,
443 .Tuner = 1,
444 .TunerType = TUNER_PHILIPS_FM1216ME_MK3,
445 .X_Offset = 0,
446 .Y_Offset = 3,
447 .Dvi_yuv_override = 1,
448 .Dvi_yuv = 7,
449 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)",
451 [HPG_WINTV_PRO_NTSC_MN_V3] = {
452 .Interface = 0,
453 .Codec = CODEC_SAA7113,
454 .VideoChannels = 3,
455 .VideoNorm = V4L2_STD_NTSC,
456 .AudioChannels = 1,
457 .Radio = 1,
458 .vbi = 1,
459 .Tuner = 1,
460 .TunerType = TUNER_PHILIPS_NTSC_M,
461 .X_Offset = 0,
462 .Y_Offset = 3,
463 .Dvi_yuv_override = 1,
464 .Dvi_yuv = 7,
465 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N) V3",
467 [HPG_WINTV_PRO_PAL_BG] = {
468 .Interface = 0,
469 .Codec = CODEC_SAA7113,
470 .VideoChannels = 3,
471 .VideoNorm = V4L2_STD_PAL,
472 .AudioChannels = 1,
473 .Radio = 0,
474 .vbi = 1,
475 .Tuner = 1,
476 .TunerType = TUNER_PHILIPS_PAL,
477 .X_Offset = 0,
478 .Y_Offset = 3,
479 .Dvi_yuv_override = 1,
480 .Dvi_yuv = 7,
481 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G)",
483 [HPG_WINTV_PRO_PAL_I] = {
484 .Interface = 0,
485 .Codec = CODEC_SAA7113,
486 .VideoChannels = 3,
487 .VideoNorm = V4L2_STD_PAL,
488 .AudioChannels = 1,
489 .Radio = 0,
490 .vbi = 1,
491 .Tuner = 1,
492 .TunerType = TUNER_PHILIPS_PAL,
493 .X_Offset = 0,
494 .Y_Offset = 3,
495 .Dvi_yuv_override = 1,
496 .Dvi_yuv = 7,
497 .ModelString = "Hauppauge WinTV USB Pro (PAL I)",
499 [HPG_WINTV_PRO_PAL_SECAM_L] = {
500 .Interface = -1,
501 .Codec = CODEC_SAA7113,
502 .VideoChannels = 3,
503 .VideoNorm = V4L2_STD_SECAM,
504 .AudioChannels = 1,
505 .Radio = 0,
506 .vbi = 1,
507 .Tuner = 1,
508 .TunerType = TUNER_PHILIPS_SECAM,
509 .X_Offset = 0,
510 .Y_Offset = 3,
511 .Dvi_yuv_override = 1,
512 .Dvi_yuv = 7,
513 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM L)",
515 [HPG_WINTV_PRO_PAL_D_K] = {
516 .Interface = -1,
517 .Codec = CODEC_SAA7113,
518 .VideoChannels = 3,
519 .VideoNorm = V4L2_STD_PAL,
520 .AudioChannels = 1,
521 .Radio = 0,
522 .vbi = 1,
523 .Tuner = 1,
524 .TunerType = TUNER_PHILIPS_PAL,
525 .X_Offset = 0,
526 .Y_Offset = 3,
527 .Dvi_yuv_override = 1,
528 .Dvi_yuv = 7,
529 .ModelString = "Hauppauge WinTV USB Pro (PAL D/K)",
531 [HPG_WINTV_PRO_PAL_SECAM] = {
532 .Interface = -1,
533 .Codec = CODEC_SAA7113,
534 .VideoChannels = 3,
535 .VideoNorm = V4L2_STD_SECAM,
536 .AudioChannels = 1,
537 .Radio = 0,
538 .vbi = 1,
539 .Tuner = 1,
540 .TunerType = TUNER_PHILIPS_SECAM,
541 .X_Offset = 0,
542 .Y_Offset = 3,
543 .Dvi_yuv_override = 1,
544 .Dvi_yuv = 7,
545 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)",
547 [HPG_WINTV_PRO_PAL_SECAM_V2] = {
548 .Interface = -1,
549 .Codec = CODEC_SAA7113,
550 .VideoChannels = 3,
551 .VideoNorm = V4L2_STD_SECAM,
552 .AudioChannels = 1,
553 .Radio = 0,
554 .vbi = 1,
555 .Tuner = 1,
556 .TunerType = TUNER_PHILIPS_SECAM,
557 .X_Offset = 0,
558 .Y_Offset = 3,
559 .Dvi_yuv_override = 1,
560 .Dvi_yuv = 7,
561 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2",
563 [HPG_WINTV_PRO_PAL_BG_V2] = {
564 .Interface = -1,
565 .Codec = CODEC_SAA7113,
566 .VideoChannels = 3,
567 .VideoNorm = V4L2_STD_PAL,
568 .AudioChannels = 1,
569 .Radio = 0,
570 .vbi = 1,
571 .Tuner = 1,
572 .TunerType = TUNER_ALPS_TSBE1_PAL,
573 .X_Offset = 0,
574 .Y_Offset = 3,
575 .Dvi_yuv_override = 1,
576 .Dvi_yuv = 7,
577 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G) V2",
579 [HPG_WINTV_PRO_PAL_BG_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_ALPS_TSBE1_PAL,
589 .X_Offset = 0,
590 .Y_Offset = 3,
591 .Dvi_yuv_override = 1,
592 .Dvi_yuv = 7,
593 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G,D/K)",
595 [HPG_WINTV_PRO_PAL_I_D_K] = {
596 .Interface = -1,
597 .Codec = CODEC_SAA7113,
598 .VideoChannels = 3,
599 .VideoNorm = V4L2_STD_PAL,
600 .AudioChannels = 1,
601 .Radio = 0,
602 .vbi = 1,
603 .Tuner = 1,
604 .TunerType = TUNER_PHILIPS_PAL,
605 .X_Offset = 0,
606 .Y_Offset = 3,
607 .Dvi_yuv_override = 1,
608 .Dvi_yuv = 7,
609 .ModelString = "Hauppauge WinTV USB Pro (PAL I,D/K)",
611 [HPG_WINTV_PRO_NTSC_MN_FM] = {
612 .Interface = -1,
613 .Codec = CODEC_SAA7113,
614 .VideoChannels = 3,
615 .VideoNorm = V4L2_STD_NTSC,
616 .AudioChannels = 1,
617 .Radio = 1,
618 .vbi = 1,
619 .Tuner = 1,
620 .TunerType = TUNER_PHILIPS_NTSC_M,
621 .X_Offset = 0,
622 .Y_Offset = 3,
623 .Dvi_yuv_override = 1,
624 .Dvi_yuv = 7,
625 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N FM)",
627 [HPG_WINTV_PRO_PAL_BG_FM] = {
628 .Interface = 0,
629 .Codec = CODEC_SAA7113,
630 .VideoChannels = 3,
631 .VideoNorm = V4L2_STD_PAL,
632 .AudioChannels = 1,
633 .Radio = 1,
634 .vbi = 1,
635 .Tuner = 1,
636 .TunerType = TUNER_PHILIPS_PAL,
637 .X_Offset = 0,
638 .Y_Offset = 3,
639 .Dvi_yuv_override = 1,
640 .Dvi_yuv = 7,
641 .ModelString = "Hauppauge WinTV USB Pro (PAL B/G FM)",
643 [HPG_WINTV_PRO_PAL_I_FM] = {
644 .Interface = 0,
645 .Codec = CODEC_SAA7113,
646 .VideoChannels = 3,
647 .VideoNorm = V4L2_STD_PAL,
648 .AudioChannels = 1,
649 .Radio = 1,
650 .vbi = 1,
651 .Tuner = 1,
652 .TunerType = TUNER_PHILIPS_PAL,
653 .X_Offset = 0,
654 .Y_Offset = 3,
655 .Dvi_yuv_override = 1,
656 .Dvi_yuv = 7,
657 .ModelString = "Hauppauge WinTV USB Pro (PAL I FM)",
659 [HPG_WINTV_PRO_PAL_D_K_FM] = {
660 .Interface = 0,
661 .Codec = CODEC_SAA7113,
662 .VideoChannels = 3,
663 .VideoNorm = V4L2_STD_PAL,
664 .AudioChannels = 1,
665 .Radio = 1,
666 .vbi = 1,
667 .Tuner = 1,
668 .TunerType = TUNER_PHILIPS_PAL,
669 .X_Offset = 0,
670 .Y_Offset = 3,
671 .Dvi_yuv_override = 1,
672 .Dvi_yuv = 7,
673 .ModelString = "Hauppauge WinTV USB Pro (PAL D/K FM)",
675 [HPG_WINTV_PRO_TEMIC_PAL_FM] = {
676 .Interface = 0,
677 .Codec = CODEC_SAA7113,
678 .VideoChannels = 3,
679 .VideoNorm = V4L2_STD_PAL,
680 .AudioChannels = 1,
681 .Radio = 1,
682 .vbi = 1,
683 .Tuner = 1,
684 .TunerType = TUNER_MICROTUNE_4049FM5,
685 .X_Offset = 0,
686 .Y_Offset = 3,
687 .Dvi_yuv_override = 1,
688 .Dvi_yuv = 7,
689 .ModelString = "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)",
691 [HPG_WINTV_PRO_TEMIC_PAL_BG_FM] = {
692 .Interface = 0,
693 .Codec = CODEC_SAA7113,
694 .VideoChannels = 3,
695 .VideoNorm = V4L2_STD_PAL,
696 .AudioChannels = 1,
697 .Radio = 1,
698 .vbi = 1,
699 .Tuner = 1,
700 .TunerType = TUNER_MICROTUNE_4049FM5,
701 .X_Offset = 0,
702 .Y_Offset = 3,
703 .Dvi_yuv_override = 1,
704 .Dvi_yuv = 7,
705 .ModelString = "Hauppauge WinTV USB Pro (Temic PAL B/G FM)",
707 [HPG_WINTV_PRO_PAL_FM] = {
708 .Interface = 0,
709 .Codec = CODEC_SAA7113,
710 .VideoChannels = 3,
711 .VideoNorm = V4L2_STD_PAL,
712 .AudioChannels = 1,
713 .Radio = 1,
714 .vbi = 1,
715 .Tuner = 1,
716 .TunerType = TUNER_PHILIPS_FM1216ME_MK3,
717 .X_Offset = 0,
718 .Y_Offset = 3,
719 .Dvi_yuv_override = 1,
720 .Dvi_yuv = 7,
721 .ModelString = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)",
723 [HPG_WINTV_PRO_NTSC_MN_FM_V2] = {
724 .Interface = 0,
725 .Codec = CODEC_SAA7113,
726 .VideoChannels = 3,
727 .VideoNorm = V4L2_STD_NTSC,
728 .AudioChannels = 1,
729 .Radio = 1,
730 .vbi = 1,
731 .Tuner = 1,
732 .TunerType = TUNER_PHILIPS_NTSC_M,
733 .X_Offset = 0,
734 .Y_Offset = 3,
735 .Dvi_yuv_override = 1,
736 .Dvi_yuv = 7,
737 .ModelString = "Hauppauge WinTV USB Pro (NTSC M/N FM) V2",
739 [CAMTEL_TVB330] = {
740 .Interface = -1,
741 .Codec = CODEC_SAA7113,
742 .VideoChannels = 3,
743 .VideoNorm = V4L2_STD_NTSC,
744 .AudioChannels = 1,
745 .Radio = 1,
746 .vbi = 1,
747 .Tuner = 1,
748 .TunerType = TUNER_PHILIPS_NTSC_M,
749 .X_Offset = 5,
750 .Y_Offset = 5,
751 .ModelString = "Camtel Technology USB TV Genie Pro FM Model TVB330",
753 [DIGITAL_VIDEO_CREATOR_I] = {
754 .Interface = -1,
755 .Codec = CODEC_SAA7113,
756 .VideoChannels = 2,
757 .VideoNorm = V4L2_STD_PAL,
758 .AudioChannels = 0,
759 .Radio = 0,
760 .vbi = 1,
761 .Tuner = 0,
762 .TunerType = 0,
763 .X_Offset = 0,
764 .Y_Offset = 3,
765 .Dvi_yuv_override = 1,
766 .Dvi_yuv = 7,
767 .ModelString = "Digital Video Creator I",
769 [GLOBAL_VILLAGE_GV_007_NTSC] = {
770 .Interface = -1,
771 .Codec = CODEC_SAA7111,
772 .VideoChannels = 2,
773 .VideoNorm = V4L2_STD_NTSC,
774 .AudioChannels = 0,
775 .Radio = 0,
776 .vbi = 1,
777 .Tuner = 0,
778 .TunerType = 0,
779 .X_Offset = 82,
780 .Y_Offset = 20,
781 .Dvi_yuv_override = 1,
782 .Dvi_yuv = 7,
783 .ModelString = "Global Village GV-007 (NTSC)",
785 [DAZZLE_DVC_50_REV_1_NTSC] = {
786 .Interface = 0,
787 .Codec = CODEC_SAA7113,
788 .VideoChannels = 2,
789 .VideoNorm = V4L2_STD_NTSC,
790 .AudioChannels = 0,
791 .Radio = 0,
792 .vbi = 1,
793 .Tuner = 0,
794 .TunerType = 0,
795 .X_Offset = 0,
796 .Y_Offset = 3,
797 .Dvi_yuv_override = 1,
798 .Dvi_yuv = 7,
799 .ModelString = "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)",
801 [DAZZLE_DVC_80_REV_1_PAL] = {
802 .Interface = 0,
803 .Codec = CODEC_SAA7113,
804 .VideoChannels = 2,
805 .VideoNorm = V4L2_STD_PAL,
806 .AudioChannels = 0,
807 .Radio = 0,
808 .vbi = 1,
809 .Tuner = 0,
810 .TunerType = 0,
811 .X_Offset = 0,
812 .Y_Offset = 3,
813 .Dvi_yuv_override = 1,
814 .Dvi_yuv = 7,
815 .ModelString = "Dazzle Fusion Model DVC-80 Rev 1 (PAL)",
817 [DAZZLE_DVC_90_REV_1_SECAM] = {
818 .Interface = 0,
819 .Codec = CODEC_SAA7113,
820 .VideoChannels = 2,
821 .VideoNorm = V4L2_STD_SECAM,
822 .AudioChannels = 0,
823 .Radio = 0,
824 .vbi = 1,
825 .Tuner = 0,
826 .TunerType = 0,
827 .X_Offset = 0,
828 .Y_Offset = 3,
829 .Dvi_yuv_override = 1,
830 .Dvi_yuv = 7,
831 .ModelString = "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)",
833 [ESKAPE_LABS_MYTV2GO] = {
834 .Interface = 0,
835 .Codec = CODEC_SAA7113,
836 .VideoChannels = 2,
837 .VideoNorm = V4L2_STD_PAL,
838 .AudioChannels = 1,
839 .Radio = 1,
840 .vbi = 1,
841 .Tuner = 1,
842 .TunerType = TUNER_PHILIPS_FM1216ME_MK3,
843 .X_Offset = 0,
844 .Y_Offset = 3,
845 .Dvi_yuv_override = 1,
846 .Dvi_yuv = 7,
847 .ModelString = "Eskape Labs MyTV2Go",
849 [PINNA_PCTV_USB_PAL] = {
850 .Interface = -1,
851 .Codec = CODEC_SAA7111,
852 .VideoChannels = 3,
853 .VideoNorm = V4L2_STD_PAL,
854 .AudioChannels = 1,
855 .Radio = 0,
856 .vbi = 0,
857 .Tuner = 1,
858 .TunerType = TUNER_TEMIC_4066FY5_PAL_I,
859 .X_Offset = -1,
860 .Y_Offset = -1,
861 .ModelString = "Pinnacle Studio PCTV USB (PAL)",
863 [PINNA_PCTV_USB_SECAM] = {
864 .Interface = -1,
865 .Codec = CODEC_SAA7111,
866 .VideoChannels = 3,
867 .VideoNorm = V4L2_STD_SECAM,
868 .AudioChannels = 1,
869 .Radio = 0,
870 .vbi = 1,
871 .Tuner = 1,
872 .TunerType = TUNER_PHILIPS_SECAM,
873 .X_Offset = -1,
874 .Y_Offset = -1,
875 .ModelString = "Pinnacle Studio PCTV USB (SECAM)",
877 [PINNA_PCTV_USB_PAL_FM] = {
878 .Interface = -1,
879 .Codec = CODEC_SAA7111,
880 .VideoChannels = 3,
881 .VideoNorm = V4L2_STD_PAL,
882 .AudioChannels = 1,
883 .Radio = 1,
884 .vbi = 1,
885 .Tuner = 1,
886 .TunerType = TUNER_PHILIPS_PAL,
887 .X_Offset = 128,
888 .Y_Offset = 23,
889 .ModelString = "Pinnacle Studio PCTV USB (PAL) FM",
891 [MIRO_PCTV_USB] = {
892 .Interface = -1,
893 .Codec = CODEC_SAA7111,
894 .VideoChannels = 3,
895 .VideoNorm = V4L2_STD_PAL,
896 .AudioChannels = 1,
897 .Radio = 0,
898 .vbi = 1,
899 .Tuner = 1,
900 .TunerType = TUNER_PHILIPS_PAL,
901 .X_Offset = -1,
902 .Y_Offset = -1,
903 .ModelString = "Miro PCTV USB",
905 [PINNA_PCTV_USB_NTSC_FM] = {
906 .Interface = -1,
907 .Codec = CODEC_SAA7111,
908 .VideoChannels = 3,
909 .VideoNorm = V4L2_STD_NTSC,
910 .AudioChannels = 1,
911 .Radio = 1,
912 .vbi = 1,
913 .Tuner = 1,
914 .TunerType = TUNER_PHILIPS_NTSC_M,
915 .X_Offset = -1,
916 .Y_Offset = -1,
917 .ModelString = "Pinnacle Studio PCTV USB (NTSC) FM",
919 [PINNA_PCTV_USB_PAL_FM_V2] = {
920 .Interface = -1,
921 .Codec = CODEC_SAA7113,
922 .VideoChannels = 3,
923 .VideoNorm = V4L2_STD_PAL,
924 .AudioChannels = 1,
925 .Radio = 1,
926 .vbi = 1,
927 .Tuner = 1,
928 .TunerType = TUNER_TEMIC_4009FR5_PAL,
929 .X_Offset = 0,
930 .Y_Offset = 3,
931 .Dvi_yuv_override = 1,
932 .Dvi_yuv = 7,
933 .ModelString = "Pinnacle Studio PCTV USB (PAL) FM V2",
935 [PINNA_PCTV_USB_NTSC_FM_V2] = {
936 .Interface = -1,
937 .Codec = CODEC_SAA7111,
938 .VideoChannels = 3,
939 .VideoNorm = V4L2_STD_NTSC,
940 .AudioChannels = 1,
941 .Radio = 1,
942 .vbi = 1,
943 .Tuner = 1,
944 .TunerType = TUNER_TEMIC_4039FR5_NTSC,
945 .X_Offset = 0,
946 .Y_Offset = 3,
947 .Dvi_yuv_override = 1,
948 .Dvi_yuv = 7,
949 .ModelString = "Pinnacle Studio PCTV USB (NTSC) FM V2",
951 [PINNA_PCTV_USB_PAL_FM_V3] = {
952 .Interface = -1,
953 .Codec = CODEC_SAA7113,
954 .VideoChannels = 3,
955 .VideoNorm = V4L2_STD_PAL,
956 .AudioChannels = 1,
957 .Radio = 1,
958 .vbi = 1,
959 .Tuner = 1,
960 .TunerType = TUNER_TEMIC_4009FR5_PAL,
961 .X_Offset = 0,
962 .Y_Offset = 3,
963 .Dvi_yuv_override = 1,
964 .Dvi_yuv = 7,
965 .ModelString = "Pinnacle Studio PCTV USB (PAL) FM V3",
967 [PINNA_LINX_VD_IN_CAB_NTSC] = {
968 .Interface = -1,
969 .Codec = CODEC_SAA7113,
970 .VideoChannels = 2,
971 .VideoNorm = V4L2_STD_NTSC,
972 .AudioChannels = 1,
973 .Radio = 0,
974 .vbi = 1,
975 .Tuner = 0,
976 .TunerType = 0,
977 .X_Offset = 0,
978 .Y_Offset = 3,
979 .Dvi_yuv_override = 1,
980 .Dvi_yuv = 7,
981 .ModelString = "Pinnacle Studio Linx Video input cable (NTSC)",
983 [PINNA_LINX_VD_IN_CAB_PAL] = {
984 .Interface = -1,
985 .Codec = CODEC_SAA7113,
986 .VideoChannels = 2,
987 .VideoNorm = V4L2_STD_PAL,
988 .AudioChannels = 1,
989 .Radio = 0,
990 .vbi = 1,
991 .Tuner = 0,
992 .TunerType = 0,
993 .X_Offset = 0,
994 .Y_Offset = 3,
995 .Dvi_yuv_override = 1,
996 .Dvi_yuv = 7,
997 .ModelString = "Pinnacle Studio Linx Video input cable (PAL)",
999 [PINNA_PCTV_BUNGEE_PAL_FM] = {
1000 .Interface = -1,
1001 .Codec = CODEC_SAA7113,
1002 .VideoChannels = 3,
1003 .VideoNorm = V4L2_STD_PAL,
1004 .AudioChannels = 1,
1005 .Radio = 1,
1006 .vbi = 1,
1007 .Tuner = 1,
1008 .TunerType = TUNER_TEMIC_4009FR5_PAL,
1009 .X_Offset = 0,
1010 .Y_Offset = 3,
1011 .Dvi_yuv_override = 1,
1012 .Dvi_yuv = 7,
1013 .ModelString = "Pinnacle PCTV Bungee USB (PAL) FM",
1015 [HPG_WINTV] = {
1016 .Interface = -1,
1017 .Codec = CODEC_SAA7111,
1018 .VideoChannels = 3,
1019 .VideoNorm = V4L2_STD_NTSC,
1020 .AudioChannels = 1,
1021 .Radio = 0,
1022 .vbi = 1,
1023 .Tuner = 1,
1024 .TunerType = TUNER_PHILIPS_NTSC_M,
1025 .X_Offset = -1,
1026 .Y_Offset = -1,
1027 .ModelString = "Hauppauge WinTv-USB",
1031 /* Supported Devices */
1033 struct usb_device_id usbvision_table [] = {
1034 { USB_DEVICE(0xfff0, 0xfff0), .driver_info=DUMMY_DEVICE },
1035 { USB_DEVICE(0x0a6f, 0x0400), .driver_info=XANBOO },
1036 { USB_DEVICE(0x050d, 0x0106), .driver_info=BELKIN_VIDEOBUS_II },
1037 { USB_DEVICE(0x050d, 0x0207), .driver_info=BELKIN_VIDEOBUS },
1038 { USB_DEVICE(0x050d, 0x0208), .driver_info=BELKIN_USB_VIDEOBUS_II },
1039 { USB_DEVICE(0x0571, 0x0002), .driver_info=ECHOFX_INTERVIEW_LITE },
1040 { USB_DEVICE(0x0573, 0x0003), .driver_info=USBGEAR_USBG_V1 },
1041 { USB_DEVICE(0x0573, 0x0400), .driver_info=D_LINK_V100 },
1042 { USB_DEVICE(0x0573, 0x2000), .driver_info=X10_USB_CAMERA },
1043 { USB_DEVICE(0x0573, 0x2d00), .driver_info=HPG_WINTV_LIVE_PAL_BG },
1044 { USB_DEVICE(0x0573, 0x2d01), .driver_info=HPG_WINTV_LIVE_PRO_NTSC_MN },
1045 { USB_DEVICE(0x0573, 0x2101), .driver_info=ZORAN_PMD_NOGATECH },
1046 { USB_DEVICE(0x0573, 0x4100), .driver_info=NOGATECH_USB_TV_NTSC_FM },
1047 { USB_DEVICE(0x0573, 0x4110), .driver_info=PNY_USB_TV_NTSC_FM },
1048 { USB_DEVICE(0x0573, 0x4450), .driver_info=PV_PLAYTV_USB_PRO_PAL_FM },
1049 { USB_DEVICE(0x0573, 0x4550), .driver_info=ZT_721 },
1050 { USB_DEVICE(0x0573, 0x4d00), .driver_info=HPG_WINTV_NTSC_MN },
1051 { USB_DEVICE(0x0573, 0x4d01), .driver_info=HPG_WINTV_PAL_BG },
1052 { USB_DEVICE(0x0573, 0x4d02), .driver_info=HPG_WINTV_PAL_I },
1053 { USB_DEVICE(0x0573, 0x4d03), .driver_info=HPG_WINTV_PAL_SECAM_L },
1054 { USB_DEVICE(0x0573, 0x4d04), .driver_info=HPG_WINTV_PAL_D_K },
1055 { USB_DEVICE(0x0573, 0x4d10), .driver_info=HPG_WINTV_NTSC_FM },
1056 { USB_DEVICE(0x0573, 0x4d11), .driver_info=HPG_WINTV_PAL_BG_FM },
1057 { USB_DEVICE(0x0573, 0x4d12), .driver_info=HPG_WINTV_PAL_I_FM },
1058 { USB_DEVICE(0x0573, 0x4d14), .driver_info=HPG_WINTV_PAL_D_K_FM },
1059 { USB_DEVICE(0x0573, 0x4d2a), .driver_info=HPG_WINTV_PRO_NTSC_MN },
1060 { USB_DEVICE(0x0573, 0x4d2b), .driver_info=HPG_WINTV_PRO_NTSC_MN_V2 },
1061 { USB_DEVICE(0x0573, 0x4d2c), .driver_info=HPG_WINTV_PRO_PAL },
1062 { USB_DEVICE(0x0573, 0x4d20), .driver_info=HPG_WINTV_PRO_NTSC_MN_V3 },
1063 { USB_DEVICE(0x0573, 0x4d21), .driver_info=HPG_WINTV_PRO_PAL_BG },
1064 { USB_DEVICE(0x0573, 0x4d22), .driver_info=HPG_WINTV_PRO_PAL_I },
1065 { USB_DEVICE(0x0573, 0x4d23), .driver_info=HPG_WINTV_PRO_PAL_SECAM_L },
1066 { USB_DEVICE(0x0573, 0x4d24), .driver_info=HPG_WINTV_PRO_PAL_D_K },
1067 { USB_DEVICE(0x0573, 0x4d25), .driver_info=HPG_WINTV_PRO_PAL_SECAM },
1068 { USB_DEVICE(0x0573, 0x4d26), .driver_info=HPG_WINTV_PRO_PAL_SECAM_V2 },
1069 { USB_DEVICE(0x0573, 0x4d27), .driver_info=HPG_WINTV_PRO_PAL_BG_V2 },
1070 { USB_DEVICE(0x0573, 0x4d28), .driver_info=HPG_WINTV_PRO_PAL_BG_D_K },
1071 { USB_DEVICE(0x0573, 0x4d29), .driver_info=HPG_WINTV_PRO_PAL_I_D_K },
1072 { USB_DEVICE(0x0573, 0x4d30), .driver_info=HPG_WINTV_PRO_NTSC_MN_FM },
1073 { USB_DEVICE(0x0573, 0x4d31), .driver_info=HPG_WINTV_PRO_PAL_BG_FM },
1074 { USB_DEVICE(0x0573, 0x4d32), .driver_info=HPG_WINTV_PRO_PAL_I_FM },
1075 { USB_DEVICE(0x0573, 0x4d34), .driver_info=HPG_WINTV_PRO_PAL_D_K_FM },
1076 { USB_DEVICE(0x0573, 0x4d35), .driver_info=HPG_WINTV_PRO_TEMIC_PAL_FM },
1077 { USB_DEVICE(0x0573, 0x4d36), .driver_info=HPG_WINTV_PRO_TEMIC_PAL_BG_FM },
1078 { USB_DEVICE(0x0573, 0x4d37), .driver_info=HPG_WINTV_PRO_PAL_FM },
1079 { USB_DEVICE(0x0573, 0x4d38), .driver_info=HPG_WINTV_PRO_NTSC_MN_FM_V2 },
1080 { USB_DEVICE(0x0768, 0x0006), .driver_info=CAMTEL_TVB330 },
1081 { USB_DEVICE(0x07d0, 0x0001), .driver_info=DIGITAL_VIDEO_CREATOR_I },
1082 { USB_DEVICE(0x07d0, 0x0002), .driver_info=GLOBAL_VILLAGE_GV_007_NTSC },
1083 { USB_DEVICE(0x07d0, 0x0003), .driver_info=DAZZLE_DVC_50_REV_1_NTSC },
1084 { USB_DEVICE(0x07d0, 0x0004), .driver_info=DAZZLE_DVC_80_REV_1_PAL },
1085 { USB_DEVICE(0x07d0, 0x0005), .driver_info=DAZZLE_DVC_90_REV_1_SECAM },
1086 { USB_DEVICE(0x07f8, 0x9104), .driver_info=ESKAPE_LABS_MYTV2GO },
1087 { USB_DEVICE(0x2304, 0x010d), .driver_info=PINNA_PCTV_USB_PAL },
1088 { USB_DEVICE(0x2304, 0x0109), .driver_info=PINNA_PCTV_USB_SECAM },
1089 { USB_DEVICE(0x2304, 0x0110), .driver_info=PINNA_PCTV_USB_PAL_FM },
1090 { USB_DEVICE(0x2304, 0x0111), .driver_info=MIRO_PCTV_USB },
1091 { USB_DEVICE(0x2304, 0x0112), .driver_info=PINNA_PCTV_USB_NTSC_FM },
1092 { USB_DEVICE(0x2304, 0x0210), .driver_info=PINNA_PCTV_USB_PAL_FM_V2 },
1093 { USB_DEVICE(0x2304, 0x0212), .driver_info=PINNA_PCTV_USB_NTSC_FM_V2 },
1094 { USB_DEVICE(0x2304, 0x0214), .driver_info=PINNA_PCTV_USB_PAL_FM_V3 },
1095 { USB_DEVICE(0x2304, 0x0300), .driver_info=PINNA_LINX_VD_IN_CAB_NTSC },
1096 { USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
1097 { USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
1098 { USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
1101 MODULE_DEVICE_TABLE (usb, usbvision_table);