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