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