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