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