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