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); 1130