aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c626
-rw-r--r--drivers/media/video/bt8xx/bttv.h40
2 files changed, 249 insertions, 417 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index edf8d2505f0b..f49e6e686628 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -320,17 +320,15 @@ struct tvcard bttv_tvcards[] = {
320 [BTTV_BOARD_UNKNOWN] = { 320 [BTTV_BOARD_UNKNOWN] = {
321 .name = " *** UNKNOWN/GENERIC *** ", 321 .name = " *** UNKNOWN/GENERIC *** ",
322 .video_inputs = 4, 322 .video_inputs = 4,
323 .audio_inputs = 1,
324 .svhs = 2, 323 .svhs = 2,
325 .muxsel = { 2, 3, 1, 0 }, 324 .muxsel = { 2, 3, 1, 0 },
326 .tuner_type = UNSET, 325 .tuner_type = UNSET,
327 .tuner_addr = ADDR_UNSET, 326 .tuner_addr = ADDR_UNSET,
328 .radio_addr = ADDR_UNSET,
329 }, 327 },
330 [BTTV_BOARD_MIRO] = { 328 [BTTV_BOARD_MIRO] = {
331 .name = "MIRO PCTV", 329 .name = "MIRO PCTV",
332 .video_inputs = 4, 330 .video_inputs = 4,
333 .audio_inputs = 1, 331 /* .audio_inputs= 1, */
334 .svhs = 2, 332 .svhs = 2,
335 .gpiomask = 15, 333 .gpiomask = 15,
336 .muxsel = { 2, 3, 1, 1 }, 334 .muxsel = { 2, 3, 1, 1 },
@@ -339,12 +337,11 @@ struct tvcard bttv_tvcards[] = {
339 .needs_tvaudio = 1, 337 .needs_tvaudio = 1,
340 .tuner_type = UNSET, 338 .tuner_type = UNSET,
341 .tuner_addr = ADDR_UNSET, 339 .tuner_addr = ADDR_UNSET,
342 .radio_addr = ADDR_UNSET,
343 }, 340 },
344 [BTTV_BOARD_HAUPPAUGE] = { 341 [BTTV_BOARD_HAUPPAUGE] = {
345 .name = "Hauppauge (bt848)", 342 .name = "Hauppauge (bt848)",
346 .video_inputs = 4, 343 .video_inputs = 4,
347 .audio_inputs = 1, 344 /* .audio_inputs= 1, */
348 .svhs = 2, 345 .svhs = 2,
349 .gpiomask = 7, 346 .gpiomask = 7,
350 .muxsel = { 2, 3, 1, 1 }, 347 .muxsel = { 2, 3, 1, 1 },
@@ -353,12 +350,11 @@ struct tvcard bttv_tvcards[] = {
353 .needs_tvaudio = 1, 350 .needs_tvaudio = 1,
354 .tuner_type = UNSET, 351 .tuner_type = UNSET,
355 .tuner_addr = ADDR_UNSET, 352 .tuner_addr = ADDR_UNSET,
356 .radio_addr = ADDR_UNSET,
357 }, 353 },
358 [BTTV_BOARD_STB] = { 354 [BTTV_BOARD_STB] = {
359 .name = "STB, Gateway P/N 6000699 (bt848)", 355 .name = "STB, Gateway P/N 6000699 (bt848)",
360 .video_inputs = 3, 356 .video_inputs = 3,
361 .audio_inputs = 1, 357 /* .audio_inputs= 1, */
362 .svhs = 2, 358 .svhs = 2,
363 .gpiomask = 7, 359 .gpiomask = 7,
364 .muxsel = { 2, 3, 1, 1 }, 360 .muxsel = { 2, 3, 1, 1 },
@@ -368,7 +364,6 @@ struct tvcard bttv_tvcards[] = {
368 .needs_tvaudio = 1, 364 .needs_tvaudio = 1,
369 .tuner_type = TUNER_PHILIPS_NTSC, 365 .tuner_type = TUNER_PHILIPS_NTSC,
370 .tuner_addr = ADDR_UNSET, 366 .tuner_addr = ADDR_UNSET,
371 .radio_addr = ADDR_UNSET,
372 .pll = PLL_28, 367 .pll = PLL_28,
373 .has_radio = 1, 368 .has_radio = 1,
374 }, 369 },
@@ -377,7 +372,7 @@ struct tvcard bttv_tvcards[] = {
377 [BTTV_BOARD_INTEL] = { 372 [BTTV_BOARD_INTEL] = {
378 .name = "Intel Create and Share PCI/ Smart Video Recorder III", 373 .name = "Intel Create and Share PCI/ Smart Video Recorder III",
379 .video_inputs = 4, 374 .video_inputs = 4,
380 .audio_inputs = 0, 375 /* .audio_inputs= 0, */
381 .svhs = 2, 376 .svhs = 2,
382 .gpiomask = 0, 377 .gpiomask = 0,
383 .muxsel = { 2, 3, 1, 1 }, 378 .muxsel = { 2, 3, 1, 1 },
@@ -385,12 +380,11 @@ struct tvcard bttv_tvcards[] = {
385 .needs_tvaudio = 0, 380 .needs_tvaudio = 0,
386 .tuner_type = TUNER_ABSENT, 381 .tuner_type = TUNER_ABSENT,
387 .tuner_addr = ADDR_UNSET, 382 .tuner_addr = ADDR_UNSET,
388 .radio_addr = ADDR_UNSET,
389 }, 383 },
390 [BTTV_BOARD_DIAMOND] = { 384 [BTTV_BOARD_DIAMOND] = {
391 .name = "Diamond DTV2000", 385 .name = "Diamond DTV2000",
392 .video_inputs = 4, 386 .video_inputs = 4,
393 .audio_inputs = 1, 387 /* .audio_inputs= 1, */
394 .svhs = 2, 388 .svhs = 2,
395 .gpiomask = 3, 389 .gpiomask = 3,
396 .muxsel = { 2, 3, 1, 0 }, 390 .muxsel = { 2, 3, 1, 0 },
@@ -399,12 +393,11 @@ struct tvcard bttv_tvcards[] = {
399 .needs_tvaudio = 1, 393 .needs_tvaudio = 1,
400 .tuner_type = UNSET, 394 .tuner_type = UNSET,
401 .tuner_addr = ADDR_UNSET, 395 .tuner_addr = ADDR_UNSET,
402 .radio_addr = ADDR_UNSET,
403 }, 396 },
404 [BTTV_BOARD_AVERMEDIA] = { 397 [BTTV_BOARD_AVERMEDIA] = {
405 .name = "AVerMedia TVPhone", 398 .name = "AVerMedia TVPhone",
406 .video_inputs = 3, 399 .video_inputs = 3,
407 .audio_inputs = 1, 400 /* .audio_inputs= 1, */
408 .svhs = 3, 401 .svhs = 3,
409 .muxsel = { 2, 3, 1, 1 }, 402 .muxsel = { 2, 3, 1, 1 },
410 .gpiomask = 0x0f, 403 .gpiomask = 0x0f,
@@ -413,14 +406,13 @@ struct tvcard bttv_tvcards[] = {
413 .needs_tvaudio = 1, 406 .needs_tvaudio = 1,
414 .tuner_type = UNSET, 407 .tuner_type = UNSET,
415 .tuner_addr = ADDR_UNSET, 408 .tuner_addr = ADDR_UNSET,
416 .radio_addr = ADDR_UNSET,
417 .audio_mode_gpio= avermedia_tvphone_audio, 409 .audio_mode_gpio= avermedia_tvphone_audio,
418 .has_remote = 1, 410 .has_remote = 1,
419 }, 411 },
420 [BTTV_BOARD_MATRIX_VISION] = { 412 [BTTV_BOARD_MATRIX_VISION] = {
421 .name = "MATRIX-Vision MV-Delta", 413 .name = "MATRIX-Vision MV-Delta",
422 .video_inputs = 5, 414 .video_inputs = 5,
423 .audio_inputs = 1, 415 /* .audio_inputs= 1, */
424 .svhs = 3, 416 .svhs = 3,
425 .gpiomask = 0, 417 .gpiomask = 0,
426 .muxsel = { 2, 3, 1, 0, 0 }, 418 .muxsel = { 2, 3, 1, 0, 0 },
@@ -428,14 +420,13 @@ struct tvcard bttv_tvcards[] = {
428 .needs_tvaudio = 1, 420 .needs_tvaudio = 1,
429 .tuner_type = TUNER_ABSENT, 421 .tuner_type = TUNER_ABSENT,
430 .tuner_addr = ADDR_UNSET, 422 .tuner_addr = ADDR_UNSET,
431 .radio_addr = ADDR_UNSET,
432 }, 423 },
433 424
434 /* ---- card 0x08 ---------------------------------- */ 425 /* ---- card 0x08 ---------------------------------- */
435 [BTTV_BOARD_FLYVIDEO] = { 426 [BTTV_BOARD_FLYVIDEO] = {
436 .name = "Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26", 427 .name = "Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26",
437 .video_inputs = 4, 428 .video_inputs = 4,
438 .audio_inputs = 1, 429 /* .audio_inputs= 1, */
439 .svhs = 2, 430 .svhs = 2,
440 .gpiomask = 0xc00, 431 .gpiomask = 0xc00,
441 .muxsel = { 2, 3, 1, 1 }, 432 .muxsel = { 2, 3, 1, 1 },
@@ -445,12 +436,11 @@ struct tvcard bttv_tvcards[] = {
445 .pll = PLL_28, 436 .pll = PLL_28,
446 .tuner_type = UNSET, 437 .tuner_type = UNSET,
447 .tuner_addr = ADDR_UNSET, 438 .tuner_addr = ADDR_UNSET,
448 .radio_addr = ADDR_UNSET,
449 }, 439 },
450 [BTTV_BOARD_TURBOTV] = { 440 [BTTV_BOARD_TURBOTV] = {
451 .name = "IMS/IXmicro TurboTV", 441 .name = "IMS/IXmicro TurboTV",
452 .video_inputs = 3, 442 .video_inputs = 3,
453 .audio_inputs = 1, 443 /* .audio_inputs= 1, */
454 .svhs = 2, 444 .svhs = 2,
455 .gpiomask = 3, 445 .gpiomask = 3,
456 .muxsel = { 2, 3, 1, 1 }, 446 .muxsel = { 2, 3, 1, 1 },
@@ -459,12 +449,11 @@ struct tvcard bttv_tvcards[] = {
459 .pll = PLL_28, 449 .pll = PLL_28,
460 .tuner_type = TUNER_TEMIC_PAL, 450 .tuner_type = TUNER_TEMIC_PAL,
461 .tuner_addr = ADDR_UNSET, 451 .tuner_addr = ADDR_UNSET,
462 .radio_addr = ADDR_UNSET,
463 }, 452 },
464 [BTTV_BOARD_HAUPPAUGE878] = { 453 [BTTV_BOARD_HAUPPAUGE878] = {
465 .name = "Hauppauge (bt878)", 454 .name = "Hauppauge (bt878)",
466 .video_inputs = 4, 455 .video_inputs = 4,
467 .audio_inputs = 1, 456 /* .audio_inputs= 1, */
468 .svhs = 2, 457 .svhs = 2,
469 .gpiomask = 0x0f, /* old: 7 */ 458 .gpiomask = 0x0f, /* old: 7 */
470 .muxsel = { 2, 0, 1, 1 }, 459 .muxsel = { 2, 0, 1, 1 },
@@ -474,12 +463,11 @@ struct tvcard bttv_tvcards[] = {
474 .pll = PLL_28, 463 .pll = PLL_28,
475 .tuner_type = UNSET, 464 .tuner_type = UNSET,
476 .tuner_addr = ADDR_UNSET, 465 .tuner_addr = ADDR_UNSET,
477 .radio_addr = ADDR_UNSET,
478 }, 466 },
479 [BTTV_BOARD_MIROPRO] = { 467 [BTTV_BOARD_MIROPRO] = {
480 .name = "MIRO PCTV pro", 468 .name = "MIRO PCTV pro",
481 .video_inputs = 3, 469 .video_inputs = 3,
482 .audio_inputs = 1, 470 /* .audio_inputs= 1, */
483 .svhs = 2, 471 .svhs = 2,
484 .gpiomask = 0x3014f, 472 .gpiomask = 0x3014f,
485 .muxsel = { 2, 3, 1, 1 }, 473 .muxsel = { 2, 3, 1, 1 },
@@ -488,14 +476,13 @@ struct tvcard bttv_tvcards[] = {
488 .needs_tvaudio = 1, 476 .needs_tvaudio = 1,
489 .tuner_type = UNSET, 477 .tuner_type = UNSET,
490 .tuner_addr = ADDR_UNSET, 478 .tuner_addr = ADDR_UNSET,
491 .radio_addr = ADDR_UNSET,
492 }, 479 },
493 480
494 /* ---- card 0x0c ---------------------------------- */ 481 /* ---- card 0x0c ---------------------------------- */
495 [BTTV_BOARD_ADSTECH_TV] = { 482 [BTTV_BOARD_ADSTECH_TV] = {
496 .name = "ADS Technologies Channel Surfer TV (bt848)", 483 .name = "ADS Technologies Channel Surfer TV (bt848)",
497 .video_inputs = 3, 484 .video_inputs = 3,
498 .audio_inputs = 1, 485 /* .audio_inputs= 1, */
499 .svhs = 2, 486 .svhs = 2,
500 .gpiomask = 15, 487 .gpiomask = 15,
501 .muxsel = { 2, 3, 1, 1 }, 488 .muxsel = { 2, 3, 1, 1 },
@@ -503,12 +490,11 @@ struct tvcard bttv_tvcards[] = {
503 .needs_tvaudio = 1, 490 .needs_tvaudio = 1,
504 .tuner_type = UNSET, 491 .tuner_type = UNSET,
505 .tuner_addr = ADDR_UNSET, 492 .tuner_addr = ADDR_UNSET,
506 .radio_addr = ADDR_UNSET,
507 }, 493 },
508 [BTTV_BOARD_AVERMEDIA98] = { 494 [BTTV_BOARD_AVERMEDIA98] = {
509 .name = "AVerMedia TVCapture 98", 495 .name = "AVerMedia TVCapture 98",
510 .video_inputs = 3, 496 .video_inputs = 3,
511 .audio_inputs = 4, 497 /* .audio_inputs= 4, */
512 .svhs = 2, 498 .svhs = 2,
513 .gpiomask = 15, 499 .gpiomask = 15,
514 .muxsel = { 2, 3, 1, 1 }, 500 .muxsel = { 2, 3, 1, 1 },
@@ -518,14 +504,13 @@ struct tvcard bttv_tvcards[] = {
518 .pll = PLL_28, 504 .pll = PLL_28,
519 .tuner_type = TUNER_PHILIPS_PAL, 505 .tuner_type = TUNER_PHILIPS_PAL,
520 .tuner_addr = ADDR_UNSET, 506 .tuner_addr = ADDR_UNSET,
521 .radio_addr = ADDR_UNSET,
522 .audio_mode_gpio= avermedia_tv_stereo_audio, 507 .audio_mode_gpio= avermedia_tv_stereo_audio,
523 .no_gpioirq = 1, 508 .no_gpioirq = 1,
524 }, 509 },
525 [BTTV_BOARD_VHX] = { 510 [BTTV_BOARD_VHX] = {
526 .name = "Aimslab Video Highway Xtreme (VHX)", 511 .name = "Aimslab Video Highway Xtreme (VHX)",
527 .video_inputs = 3, 512 .video_inputs = 3,
528 .audio_inputs = 1, 513 /* .audio_inputs= 1, */
529 .svhs = 2, 514 .svhs = 2,
530 .gpiomask = 7, 515 .gpiomask = 7,
531 .muxsel = { 2, 3, 1, 1 }, 516 .muxsel = { 2, 3, 1, 1 },
@@ -535,12 +520,11 @@ struct tvcard bttv_tvcards[] = {
535 .pll = PLL_28, 520 .pll = PLL_28,
536 .tuner_type = UNSET, 521 .tuner_type = UNSET,
537 .tuner_addr = ADDR_UNSET, 522 .tuner_addr = ADDR_UNSET,
538 .radio_addr = ADDR_UNSET,
539 }, 523 },
540 [BTTV_BOARD_ZOLTRIX] = { 524 [BTTV_BOARD_ZOLTRIX] = {
541 .name = "Zoltrix TV-Max", 525 .name = "Zoltrix TV-Max",
542 .video_inputs = 3, 526 .video_inputs = 3,
543 .audio_inputs = 1, 527 /* .audio_inputs= 1, */
544 .svhs = 2, 528 .svhs = 2,
545 .gpiomask = 15, 529 .gpiomask = 15,
546 .muxsel = { 2, 3, 1, 1 }, 530 .muxsel = { 2, 3, 1, 1 },
@@ -549,14 +533,13 @@ struct tvcard bttv_tvcards[] = {
549 .needs_tvaudio = 1, 533 .needs_tvaudio = 1,
550 .tuner_type = UNSET, 534 .tuner_type = UNSET,
551 .tuner_addr = ADDR_UNSET, 535 .tuner_addr = ADDR_UNSET,
552 .radio_addr = ADDR_UNSET,
553 }, 536 },
554 537
555 /* ---- card 0x10 ---------------------------------- */ 538 /* ---- card 0x10 ---------------------------------- */
556 [BTTV_BOARD_PIXVIEWPLAYTV] = { 539 [BTTV_BOARD_PIXVIEWPLAYTV] = {
557 .name = "Prolink Pixelview PlayTV (bt878)", 540 .name = "Prolink Pixelview PlayTV (bt878)",
558 .video_inputs = 3, 541 .video_inputs = 3,
559 .audio_inputs = 1, 542 /* .audio_inputs= 1, */
560 .svhs = 2, 543 .svhs = 2,
561 .gpiomask = 0x01fe00, 544 .gpiomask = 0x01fe00,
562 .muxsel = { 2, 3, 1, 1 }, 545 .muxsel = { 2, 3, 1, 1 },
@@ -567,12 +550,11 @@ struct tvcard bttv_tvcards[] = {
567 .pll = PLL_28, 550 .pll = PLL_28,
568 .tuner_type = UNSET, 551 .tuner_type = UNSET,
569 .tuner_addr = ADDR_UNSET, 552 .tuner_addr = ADDR_UNSET,
570 .radio_addr = ADDR_UNSET,
571 }, 553 },
572 [BTTV_BOARD_WINVIEW_601] = { 554 [BTTV_BOARD_WINVIEW_601] = {
573 .name = "Leadtek WinView 601", 555 .name = "Leadtek WinView 601",
574 .video_inputs = 3, 556 .video_inputs = 3,
575 .audio_inputs = 1, 557 /* .audio_inputs= 1, */
576 .svhs = 2, 558 .svhs = 2,
577 .gpiomask = 0x8300f8, 559 .gpiomask = 0x8300f8,
578 .muxsel = { 2, 3, 1, 1,0 }, 560 .muxsel = { 2, 3, 1, 1,0 },
@@ -581,14 +563,13 @@ struct tvcard bttv_tvcards[] = {
581 .needs_tvaudio = 1, 563 .needs_tvaudio = 1,
582 .tuner_type = UNSET, 564 .tuner_type = UNSET,
583 .tuner_addr = ADDR_UNSET, 565 .tuner_addr = ADDR_UNSET,
584 .radio_addr = ADDR_UNSET,
585 .volume_gpio = winview_volume, 566 .volume_gpio = winview_volume,
586 .has_radio = 1, 567 .has_radio = 1,
587 }, 568 },
588 [BTTV_BOARD_AVEC_INTERCAP] = { 569 [BTTV_BOARD_AVEC_INTERCAP] = {
589 .name = "AVEC Intercapture", 570 .name = "AVEC Intercapture",
590 .video_inputs = 3, 571 .video_inputs = 3,
591 .audio_inputs = 2, 572 /* .audio_inputs= 2, */
592 .svhs = 2, 573 .svhs = 2,
593 .gpiomask = 0, 574 .gpiomask = 0,
594 .muxsel = { 2, 3, 1, 1 }, 575 .muxsel = { 2, 3, 1, 1 },
@@ -596,37 +577,34 @@ struct tvcard bttv_tvcards[] = {
596 .needs_tvaudio = 1, 577 .needs_tvaudio = 1,
597 .tuner_type = UNSET, 578 .tuner_type = UNSET,
598 .tuner_addr = ADDR_UNSET, 579 .tuner_addr = ADDR_UNSET,
599 .radio_addr = ADDR_UNSET,
600 }, 580 },
601 [BTTV_BOARD_LIFE_FLYKIT] = { 581 [BTTV_BOARD_LIFE_FLYKIT] = {
602 .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", 582 .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)",
603 .video_inputs = 4, 583 .video_inputs = 4,
604 .audio_inputs = 1, 584 /* .audio_inputs= 1, */
605 .svhs = UNSET, 585 .svhs = NO_SVHS,
606 .gpiomask = 0x8dff00, 586 .gpiomask = 0x8dff00,
607 .muxsel = { 2, 3, 1, 1 }, 587 .muxsel = { 2, 3, 1, 1 },
608 .gpiomux = { 0 }, 588 .gpiomux = { 0 },
609 .no_msp34xx = 1, 589 .no_msp34xx = 1,
610 .tuner_type = TUNER_ABSENT, 590 .tuner_type = TUNER_ABSENT,
611 .tuner_addr = ADDR_UNSET, 591 .tuner_addr = ADDR_UNSET,
612 .radio_addr = ADDR_UNSET,
613 }, 592 },
614 593
615 /* ---- card 0x14 ---------------------------------- */ 594 /* ---- card 0x14 ---------------------------------- */
616 [BTTV_BOARD_CEI_RAFFLES] = { 595 [BTTV_BOARD_CEI_RAFFLES] = {
617 .name = "CEI Raffles Card", 596 .name = "CEI Raffles Card",
618 .video_inputs = 3, 597 .video_inputs = 3,
619 .audio_inputs = 3, 598 /* .audio_inputs= 3, */
620 .svhs = 2, 599 .svhs = 2,
621 .muxsel = { 2, 3, 1, 1 }, 600 .muxsel = { 2, 3, 1, 1 },
622 .tuner_type = UNSET, 601 .tuner_type = UNSET,
623 .tuner_addr = ADDR_UNSET, 602 .tuner_addr = ADDR_UNSET,
624 .radio_addr = ADDR_UNSET,
625 }, 603 },
626 [BTTV_BOARD_CONFERENCETV] = { 604 [BTTV_BOARD_CONFERENCETV] = {
627 .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", 605 .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50",
628 .video_inputs = 4, 606 .video_inputs = 4,
629 .audio_inputs = 2, /* tuner, line in */ 607 /* .audio_inputs= 2, tuner, line in */
630 .svhs = 2, 608 .svhs = 2,
631 .gpiomask = 0x1800, 609 .gpiomask = 0x1800,
632 .muxsel = { 2, 3, 1, 1 }, 610 .muxsel = { 2, 3, 1, 1 },
@@ -635,12 +613,11 @@ struct tvcard bttv_tvcards[] = {
635 .pll = PLL_28, 613 .pll = PLL_28,
636 .tuner_type = TUNER_PHILIPS_PAL_I, 614 .tuner_type = TUNER_PHILIPS_PAL_I,
637 .tuner_addr = ADDR_UNSET, 615 .tuner_addr = ADDR_UNSET,
638 .radio_addr = ADDR_UNSET,
639 }, 616 },
640 [BTTV_BOARD_PHOEBE_TVMAS] = { 617 [BTTV_BOARD_PHOEBE_TVMAS] = {
641 .name = "Askey CPH050/ Phoebe Tv Master + FM", 618 .name = "Askey CPH050/ Phoebe Tv Master + FM",
642 .video_inputs = 3, 619 .video_inputs = 3,
643 .audio_inputs = 1, 620 /* .audio_inputs= 1, */
644 .svhs = 2, 621 .svhs = 2,
645 .gpiomask = 0xc00, 622 .gpiomask = 0xc00,
646 .muxsel = { 2, 3, 1, 1 }, 623 .muxsel = { 2, 3, 1, 1 },
@@ -650,29 +627,27 @@ struct tvcard bttv_tvcards[] = {
650 .pll = PLL_28, 627 .pll = PLL_28,
651 .tuner_type = UNSET, 628 .tuner_type = UNSET,
652 .tuner_addr = ADDR_UNSET, 629 .tuner_addr = ADDR_UNSET,
653 .radio_addr = ADDR_UNSET,
654 }, 630 },
655 [BTTV_BOARD_MODTEC_205] = { 631 [BTTV_BOARD_MODTEC_205] = {
656 .name = "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878", 632 .name = "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878",
657 .video_inputs = 3, 633 .video_inputs = 3,
658 .audio_inputs = 1, 634 /* .audio_inputs= 1, */
659 .svhs = UNSET, 635 .svhs = NO_SVHS,
660 .gpiomask = 7, 636 .gpiomask = 7,
661 .muxsel = { 2, 3, -1 }, 637 .muxsel = { 2, 3, -1 },
662 .digital_mode = DIGITAL_MODE_CAMERA, 638 /* .digital_mode= DIGITAL_MODE_CAMERA, */
663 .gpiomux = { 0, 0, 0, 0 }, 639 .gpiomux = { 0, 0, 0, 0 },
664 .no_msp34xx = 1, 640 .no_msp34xx = 1,
665 .pll = PLL_28, 641 .pll = PLL_28,
666 .tuner_type = TUNER_ALPS_TSBB5_PAL_I, 642 .tuner_type = TUNER_ALPS_TSBB5_PAL_I,
667 .tuner_addr = ADDR_UNSET, 643 .tuner_addr = ADDR_UNSET,
668 .radio_addr = ADDR_UNSET,
669 }, 644 },
670 645
671 /* ---- card 0x18 ---------------------------------- */ 646 /* ---- card 0x18 ---------------------------------- */
672 [BTTV_BOARD_MAGICTVIEW061] = { 647 [BTTV_BOARD_MAGICTVIEW061] = {
673 .name = "Askey CPH05X/06X (bt878) [many vendors]", 648 .name = "Askey CPH05X/06X (bt878) [many vendors]",
674 .video_inputs = 3, 649 .video_inputs = 3,
675 .audio_inputs = 1, 650 /* .audio_inputs= 1, */
676 .svhs = 2, 651 .svhs = 2,
677 .gpiomask = 0xe00, 652 .gpiomask = 0xe00,
678 .muxsel = { 2, 3, 1, 1 }, 653 .muxsel = { 2, 3, 1, 1 },
@@ -682,13 +657,12 @@ struct tvcard bttv_tvcards[] = {
682 .pll = PLL_28, 657 .pll = PLL_28,
683 .tuner_type = UNSET, 658 .tuner_type = UNSET,
684 .tuner_addr = ADDR_UNSET, 659 .tuner_addr = ADDR_UNSET,
685 .radio_addr = ADDR_UNSET,
686 .has_remote = 1, 660 .has_remote = 1,
687 }, 661 },
688 [BTTV_BOARD_VOBIS_BOOSTAR] = { 662 [BTTV_BOARD_VOBIS_BOOSTAR] = {
689 .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", 663 .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar",
690 .video_inputs = 3, 664 .video_inputs = 3,
691 .audio_inputs = 1, 665 /* .audio_inputs= 1, */
692 .svhs = 2, 666 .svhs = 2,
693 .gpiomask = 0x1f0fff, 667 .gpiomask = 0x1f0fff,
694 .muxsel = { 2, 3, 1, 1 }, 668 .muxsel = { 2, 3, 1, 1 },
@@ -697,13 +671,12 @@ struct tvcard bttv_tvcards[] = {
697 .needs_tvaudio = 0, 671 .needs_tvaudio = 0,
698 .tuner_type = TUNER_PHILIPS_PAL, 672 .tuner_type = TUNER_PHILIPS_PAL,
699 .tuner_addr = ADDR_UNSET, 673 .tuner_addr = ADDR_UNSET,
700 .radio_addr = ADDR_UNSET,
701 .audio_mode_gpio= terratv_audio, 674 .audio_mode_gpio= terratv_audio,
702 }, 675 },
703 [BTTV_BOARD_HAUPPAUG_WCAM] = { 676 [BTTV_BOARD_HAUPPAUG_WCAM] = {
704 .name = "Hauppauge WinCam newer (bt878)", 677 .name = "Hauppauge WinCam newer (bt878)",
705 .video_inputs = 4, 678 .video_inputs = 4,
706 .audio_inputs = 1, 679 /* .audio_inputs= 1, */
707 .svhs = 3, 680 .svhs = 3,
708 .gpiomask = 7, 681 .gpiomask = 7,
709 .muxsel = { 2, 0, 1, 1 }, 682 .muxsel = { 2, 0, 1, 1 },
@@ -712,12 +685,11 @@ struct tvcard bttv_tvcards[] = {
712 .needs_tvaudio = 1, 685 .needs_tvaudio = 1,
713 .tuner_type = UNSET, 686 .tuner_type = UNSET,
714 .tuner_addr = ADDR_UNSET, 687 .tuner_addr = ADDR_UNSET,
715 .radio_addr = ADDR_UNSET,
716 }, 688 },
717 [BTTV_BOARD_MAXI] = { 689 [BTTV_BOARD_MAXI] = {
718 .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", 690 .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50",
719 .video_inputs = 4, 691 .video_inputs = 4,
720 .audio_inputs = 2, 692 /* .audio_inputs= 2, */
721 .svhs = 2, 693 .svhs = 2,
722 .gpiomask = 0x1800, 694 .gpiomask = 0x1800,
723 .muxsel = { 2, 3, 1, 1 }, 695 .muxsel = { 2, 3, 1, 1 },
@@ -726,14 +698,13 @@ struct tvcard bttv_tvcards[] = {
726 .pll = PLL_28, 698 .pll = PLL_28,
727 .tuner_type = TUNER_PHILIPS_SECAM, 699 .tuner_type = TUNER_PHILIPS_SECAM,
728 .tuner_addr = ADDR_UNSET, 700 .tuner_addr = ADDR_UNSET,
729 .radio_addr = ADDR_UNSET,
730 }, 701 },
731 702
732 /* ---- card 0x1c ---------------------------------- */ 703 /* ---- card 0x1c ---------------------------------- */
733 [BTTV_BOARD_TERRATV] = { 704 [BTTV_BOARD_TERRATV] = {
734 .name = "Terratec TerraTV+ Version 1.1 (bt878)", 705 .name = "Terratec TerraTV+ Version 1.1 (bt878)",
735 .video_inputs = 3, 706 .video_inputs = 3,
736 .audio_inputs = 1, 707 /* .audio_inputs= 1, */
737 .svhs = 2, 708 .svhs = 2,
738 .gpiomask = 0x1f0fff, 709 .gpiomask = 0x1f0fff,
739 .muxsel = { 2, 3, 1, 1 }, 710 .muxsel = { 2, 3, 1, 1 },
@@ -742,7 +713,6 @@ struct tvcard bttv_tvcards[] = {
742 .needs_tvaudio = 0, 713 .needs_tvaudio = 0,
743 .tuner_type = TUNER_PHILIPS_PAL, 714 .tuner_type = TUNER_PHILIPS_PAL,
744 .tuner_addr = ADDR_UNSET, 715 .tuner_addr = ADDR_UNSET,
745 .radio_addr = ADDR_UNSET,
746 .audio_mode_gpio= terratv_audio, 716 .audio_mode_gpio= terratv_audio,
747 /* GPIO wiring: 717 /* GPIO wiring:
748 External 20 pin connector (for Active Radio Upgrade board) 718 External 20 pin connector (for Active Radio Upgrade board)
@@ -780,7 +750,7 @@ struct tvcard bttv_tvcards[] = {
780 /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */ 750 /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */
781 .name = "Imagenation PXC200", 751 .name = "Imagenation PXC200",
782 .video_inputs = 5, 752 .video_inputs = 5,
783 .audio_inputs = 1, 753 /* .audio_inputs= 1, */
784 .svhs = 1, /* was: 4 */ 754 .svhs = 1, /* was: 4 */
785 .gpiomask = 0, 755 .gpiomask = 0,
786 .muxsel = { 2, 3, 1, 0, 0}, 756 .muxsel = { 2, 3, 1, 0, 0},
@@ -788,14 +758,13 @@ struct tvcard bttv_tvcards[] = {
788 .needs_tvaudio = 1, 758 .needs_tvaudio = 1,
789 .tuner_type = TUNER_ABSENT, 759 .tuner_type = TUNER_ABSENT,
790 .tuner_addr = ADDR_UNSET, 760 .tuner_addr = ADDR_UNSET,
791 .radio_addr = ADDR_UNSET,
792 .muxsel_hook = PXC200_muxsel, 761 .muxsel_hook = PXC200_muxsel,
793 762
794 }, 763 },
795 [BTTV_BOARD_FLYVIDEO_98] = { 764 [BTTV_BOARD_FLYVIDEO_98] = {
796 .name = "Lifeview FlyVideo 98 LR50", 765 .name = "Lifeview FlyVideo 98 LR50",
797 .video_inputs = 4, 766 .video_inputs = 4,
798 .audio_inputs = 1, 767 /* .audio_inputs= 1, */
799 .svhs = 2, 768 .svhs = 2,
800 .gpiomask = 0x1800, /* 0x8dfe00 */ 769 .gpiomask = 0x1800, /* 0x8dfe00 */
801 .muxsel = { 2, 3, 1, 1 }, 770 .muxsel = { 2, 3, 1, 1 },
@@ -804,12 +773,11 @@ struct tvcard bttv_tvcards[] = {
804 .pll = PLL_28, 773 .pll = PLL_28,
805 .tuner_type = UNSET, 774 .tuner_type = UNSET,
806 .tuner_addr = ADDR_UNSET, 775 .tuner_addr = ADDR_UNSET,
807 .radio_addr = ADDR_UNSET,
808 }, 776 },
809 [BTTV_BOARD_IPROTV] = { 777 [BTTV_BOARD_IPROTV] = {
810 .name = "Formac iProTV, Formac ProTV I (bt848)", 778 .name = "Formac iProTV, Formac ProTV I (bt848)",
811 .video_inputs = 4, 779 .video_inputs = 4,
812 .audio_inputs = 1, 780 /* .audio_inputs= 1, */
813 .svhs = 3, 781 .svhs = 3,
814 .gpiomask = 1, 782 .gpiomask = 1,
815 .muxsel = { 2, 3, 1, 1 }, 783 .muxsel = { 2, 3, 1, 1 },
@@ -817,14 +785,13 @@ struct tvcard bttv_tvcards[] = {
817 .pll = PLL_28, 785 .pll = PLL_28,
818 .tuner_type = TUNER_PHILIPS_PAL, 786 .tuner_type = TUNER_PHILIPS_PAL,
819 .tuner_addr = ADDR_UNSET, 787 .tuner_addr = ADDR_UNSET,
820 .radio_addr = ADDR_UNSET,
821 }, 788 },
822 789
823 /* ---- card 0x20 ---------------------------------- */ 790 /* ---- card 0x20 ---------------------------------- */
824 [BTTV_BOARD_INTEL_C_S_PCI] = { 791 [BTTV_BOARD_INTEL_C_S_PCI] = {
825 .name = "Intel Create and Share PCI/ Smart Video Recorder III", 792 .name = "Intel Create and Share PCI/ Smart Video Recorder III",
826 .video_inputs = 4, 793 .video_inputs = 4,
827 .audio_inputs = 0, 794 /* .audio_inputs= 0, */
828 .svhs = 2, 795 .svhs = 2,
829 .gpiomask = 0, 796 .gpiomask = 0,
830 .muxsel = { 2, 3, 1, 1 }, 797 .muxsel = { 2, 3, 1, 1 },
@@ -832,12 +799,11 @@ struct tvcard bttv_tvcards[] = {
832 .needs_tvaudio = 0, 799 .needs_tvaudio = 0,
833 .tuner_type = TUNER_ABSENT, 800 .tuner_type = TUNER_ABSENT,
834 .tuner_addr = ADDR_UNSET, 801 .tuner_addr = ADDR_UNSET,
835 .radio_addr = ADDR_UNSET,
836 }, 802 },
837 [BTTV_BOARD_TERRATVALUE] = { 803 [BTTV_BOARD_TERRATVALUE] = {
838 .name = "Terratec TerraTValue Version Bt878", 804 .name = "Terratec TerraTValue Version Bt878",
839 .video_inputs = 3, 805 .video_inputs = 3,
840 .audio_inputs = 1, 806 /* .audio_inputs= 1, */
841 .svhs = 2, 807 .svhs = 2,
842 .gpiomask = 0xffff00, 808 .gpiomask = 0xffff00,
843 .muxsel = { 2, 3, 1, 1 }, 809 .muxsel = { 2, 3, 1, 1 },
@@ -847,12 +813,11 @@ struct tvcard bttv_tvcards[] = {
847 .pll = PLL_28, 813 .pll = PLL_28,
848 .tuner_type = TUNER_PHILIPS_PAL, 814 .tuner_type = TUNER_PHILIPS_PAL,
849 .tuner_addr = ADDR_UNSET, 815 .tuner_addr = ADDR_UNSET,
850 .radio_addr = ADDR_UNSET,
851 }, 816 },
852 [BTTV_BOARD_WINFAST2000] = { 817 [BTTV_BOARD_WINFAST2000] = {
853 .name = "Leadtek WinFast 2000/ WinFast 2000 XP", 818 .name = "Leadtek WinFast 2000/ WinFast 2000 XP",
854 .video_inputs = 4, 819 .video_inputs = 4,
855 .audio_inputs = 1, 820 /* .audio_inputs= 1, */
856 .svhs = 2, 821 .svhs = 2,
857 .muxsel = { 2, 3, 1, 1, 0 }, /* TV, CVid, SVid, CVid over SVid connector */ 822 .muxsel = { 2, 3, 1, 1, 0 }, /* TV, CVid, SVid, CVid over SVid connector */
858 /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */ 823 /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */
@@ -875,14 +840,13 @@ struct tvcard bttv_tvcards[] = {
875 .has_radio = 1, 840 .has_radio = 1,
876 .tuner_type = TUNER_PHILIPS_PAL, /* default for now, gpio reads BFFF06 for Pal bg+dk */ 841 .tuner_type = TUNER_PHILIPS_PAL, /* default for now, gpio reads BFFF06 for Pal bg+dk */
877 .tuner_addr = ADDR_UNSET, 842 .tuner_addr = ADDR_UNSET,
878 .radio_addr = ADDR_UNSET,
879 .audio_mode_gpio= winfast2000_audio, 843 .audio_mode_gpio= winfast2000_audio,
880 .has_remote = 1, 844 .has_remote = 1,
881 }, 845 },
882 [BTTV_BOARD_CHRONOS_VS2] = { 846 [BTTV_BOARD_CHRONOS_VS2] = {
883 .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", 847 .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II",
884 .video_inputs = 4, 848 .video_inputs = 4,
885 .audio_inputs = 3, 849 /* .audio_inputs= 3, */
886 .svhs = 2, 850 .svhs = 2,
887 .gpiomask = 0x1800, 851 .gpiomask = 0x1800,
888 .muxsel = { 2, 3, 1, 1 }, 852 .muxsel = { 2, 3, 1, 1 },
@@ -891,14 +855,13 @@ struct tvcard bttv_tvcards[] = {
891 .pll = PLL_28, 855 .pll = PLL_28,
892 .tuner_type = UNSET, 856 .tuner_type = UNSET,
893 .tuner_addr = ADDR_UNSET, 857 .tuner_addr = ADDR_UNSET,
894 .radio_addr = ADDR_UNSET,
895 }, 858 },
896 859
897 /* ---- card 0x24 ---------------------------------- */ 860 /* ---- card 0x24 ---------------------------------- */
898 [BTTV_BOARD_TYPHOON_TVIEW] = { 861 [BTTV_BOARD_TYPHOON_TVIEW] = {
899 .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", 862 .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner",
900 .video_inputs = 4, 863 .video_inputs = 4,
901 .audio_inputs = 3, 864 /* .audio_inputs= 3, */
902 .svhs = 2, 865 .svhs = 2,
903 .gpiomask = 0x1800, 866 .gpiomask = 0x1800,
904 .muxsel = { 2, 3, 1, 1 }, 867 .muxsel = { 2, 3, 1, 1 },
@@ -907,13 +870,12 @@ struct tvcard bttv_tvcards[] = {
907 .pll = PLL_28, 870 .pll = PLL_28,
908 .tuner_type = UNSET, 871 .tuner_type = UNSET,
909 .tuner_addr = ADDR_UNSET, 872 .tuner_addr = ADDR_UNSET,
910 .radio_addr = ADDR_UNSET,
911 .has_radio = 1, 873 .has_radio = 1,
912 }, 874 },
913 [BTTV_BOARD_PXELVWPLTVPRO] = { 875 [BTTV_BOARD_PXELVWPLTVPRO] = {
914 .name = "Prolink PixelView PlayTV pro", 876 .name = "Prolink PixelView PlayTV pro",
915 .video_inputs = 3, 877 .video_inputs = 3,
916 .audio_inputs = 1, 878 /* .audio_inputs= 1, */
917 .svhs = 2, 879 .svhs = 2,
918 .gpiomask = 0xff, 880 .gpiomask = 0xff,
919 .muxsel = { 2, 3, 1, 1 }, 881 .muxsel = { 2, 3, 1, 1 },
@@ -923,12 +885,11 @@ struct tvcard bttv_tvcards[] = {
923 .pll = PLL_28, 885 .pll = PLL_28,
924 .tuner_type = UNSET, 886 .tuner_type = UNSET,
925 .tuner_addr = ADDR_UNSET, 887 .tuner_addr = ADDR_UNSET,
926 .radio_addr = ADDR_UNSET,
927 }, 888 },
928 [BTTV_BOARD_MAGICTVIEW063] = { 889 [BTTV_BOARD_MAGICTVIEW063] = {
929 .name = "Askey CPH06X TView99", 890 .name = "Askey CPH06X TView99",
930 .video_inputs = 4, 891 .video_inputs = 4,
931 .audio_inputs = 1, 892 /* .audio_inputs= 1, */
932 .svhs = 2, 893 .svhs = 2,
933 .gpiomask = 0x551e00, 894 .gpiomask = 0x551e00,
934 .muxsel = { 2, 3, 1, 0 }, 895 .muxsel = { 2, 3, 1, 0 },
@@ -938,13 +899,12 @@ struct tvcard bttv_tvcards[] = {
938 .pll = PLL_28, 899 .pll = PLL_28,
939 .tuner_type = TUNER_PHILIPS_PAL_I, 900 .tuner_type = TUNER_PHILIPS_PAL_I,
940 .tuner_addr = ADDR_UNSET, 901 .tuner_addr = ADDR_UNSET,
941 .radio_addr = ADDR_UNSET,
942 .has_remote = 1, 902 .has_remote = 1,
943 }, 903 },
944 [BTTV_BOARD_PINNACLE] = { 904 [BTTV_BOARD_PINNACLE] = {
945 .name = "Pinnacle PCTV Studio/Rave", 905 .name = "Pinnacle PCTV Studio/Rave",
946 .video_inputs = 3, 906 .video_inputs = 3,
947 .audio_inputs = 1, 907 /* .audio_inputs= 1, */
948 .svhs = 2, 908 .svhs = 2,
949 .gpiomask = 0x03000F, 909 .gpiomask = 0x03000F,
950 .muxsel = { 2, 3, 1, 1 }, 910 .muxsel = { 2, 3, 1, 1 },
@@ -954,14 +914,13 @@ struct tvcard bttv_tvcards[] = {
954 .pll = PLL_28, 914 .pll = PLL_28,
955 .tuner_type = UNSET, 915 .tuner_type = UNSET,
956 .tuner_addr = ADDR_UNSET, 916 .tuner_addr = ADDR_UNSET,
957 .radio_addr = ADDR_UNSET,
958 }, 917 },
959 918
960 /* ---- card 0x28 ---------------------------------- */ 919 /* ---- card 0x28 ---------------------------------- */
961 [BTTV_BOARD_STB2] = { 920 [BTTV_BOARD_STB2] = {
962 .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", 921 .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100",
963 .video_inputs = 3, 922 .video_inputs = 3,
964 .audio_inputs = 1, 923 /* .audio_inputs= 1, */
965 .svhs = 2, 924 .svhs = 2,
966 .gpiomask = 7, 925 .gpiomask = 7,
967 .muxsel = { 2, 3, 1, 1 }, 926 .muxsel = { 2, 3, 1, 1 },
@@ -971,14 +930,13 @@ struct tvcard bttv_tvcards[] = {
971 .needs_tvaudio = 1, 930 .needs_tvaudio = 1,
972 .tuner_type = TUNER_PHILIPS_NTSC, 931 .tuner_type = TUNER_PHILIPS_NTSC,
973 .tuner_addr = ADDR_UNSET, 932 .tuner_addr = ADDR_UNSET,
974 .radio_addr = ADDR_UNSET,
975 .pll = PLL_28, 933 .pll = PLL_28,
976 .has_radio = 1, 934 .has_radio = 1,
977 }, 935 },
978 [BTTV_BOARD_AVPHONE98] = { 936 [BTTV_BOARD_AVPHONE98] = {
979 .name = "AVerMedia TVPhone 98", 937 .name = "AVerMedia TVPhone 98",
980 .video_inputs = 3, 938 .video_inputs = 3,
981 .audio_inputs = 4, 939 /* .audio_inputs= 4, */
982 .svhs = 2, 940 .svhs = 2,
983 .gpiomask = 15, 941 .gpiomask = 15,
984 .muxsel = { 2, 3, 1, 1 }, 942 .muxsel = { 2, 3, 1, 1 },
@@ -987,14 +945,13 @@ struct tvcard bttv_tvcards[] = {
987 .pll = PLL_28, 945 .pll = PLL_28,
988 .tuner_type = UNSET, 946 .tuner_type = UNSET,
989 .tuner_addr = ADDR_UNSET, 947 .tuner_addr = ADDR_UNSET,
990 .radio_addr = ADDR_UNSET,
991 .has_radio = 1, 948 .has_radio = 1,
992 .audio_mode_gpio= avermedia_tvphone_audio, 949 .audio_mode_gpio= avermedia_tvphone_audio,
993 }, 950 },
994 [BTTV_BOARD_PV951] = { 951 [BTTV_BOARD_PV951] = {
995 .name = "ProVideo PV951", /* pic16c54 */ 952 .name = "ProVideo PV951", /* pic16c54 */
996 .video_inputs = 3, 953 .video_inputs = 3,
997 .audio_inputs = 1, 954 /* .audio_inputs= 1, */
998 .svhs = 2, 955 .svhs = 2,
999 .gpiomask = 0, 956 .gpiomask = 0,
1000 .muxsel = { 2, 3, 1, 1}, 957 .muxsel = { 2, 3, 1, 1},
@@ -1004,12 +961,11 @@ struct tvcard bttv_tvcards[] = {
1004 .pll = PLL_28, 961 .pll = PLL_28,
1005 .tuner_type = TUNER_PHILIPS_PAL_I, 962 .tuner_type = TUNER_PHILIPS_PAL_I,
1006 .tuner_addr = ADDR_UNSET, 963 .tuner_addr = ADDR_UNSET,
1007 .radio_addr = ADDR_UNSET,
1008 }, 964 },
1009 [BTTV_BOARD_ONAIR_TV] = { 965 [BTTV_BOARD_ONAIR_TV] = {
1010 .name = "Little OnAir TV", 966 .name = "Little OnAir TV",
1011 .video_inputs = 3, 967 .video_inputs = 3,
1012 .audio_inputs = 1, 968 /* .audio_inputs= 1, */
1013 .svhs = 2, 969 .svhs = 2,
1014 .gpiomask = 0xe00b, 970 .gpiomask = 0xe00b,
1015 .muxsel = { 2, 3, 1, 1 }, 971 .muxsel = { 2, 3, 1, 1 },
@@ -1018,15 +974,14 @@ struct tvcard bttv_tvcards[] = {
1018 .no_msp34xx = 1, 974 .no_msp34xx = 1,
1019 .tuner_type = UNSET, 975 .tuner_type = UNSET,
1020 .tuner_addr = ADDR_UNSET, 976 .tuner_addr = ADDR_UNSET,
1021 .radio_addr = ADDR_UNSET,
1022 }, 977 },
1023 978
1024 /* ---- card 0x2c ---------------------------------- */ 979 /* ---- card 0x2c ---------------------------------- */
1025 [BTTV_BOARD_SIGMA_TVII_FM] = { 980 [BTTV_BOARD_SIGMA_TVII_FM] = {
1026 .name = "Sigma TVII-FM", 981 .name = "Sigma TVII-FM",
1027 .video_inputs = 2, 982 .video_inputs = 2,
1028 .audio_inputs = 1, 983 /* .audio_inputs= 1, */
1029 .svhs = UNSET, 984 .svhs = NO_SVHS,
1030 .gpiomask = 3, 985 .gpiomask = 3,
1031 .muxsel = { 2, 3, 1, 1 }, 986 .muxsel = { 2, 3, 1, 1 },
1032 .gpiomux = { 1, 1, 0, 2 }, 987 .gpiomux = { 1, 1, 0, 2 },
@@ -1035,12 +990,11 @@ struct tvcard bttv_tvcards[] = {
1035 .pll = PLL_NONE, 990 .pll = PLL_NONE,
1036 .tuner_type = UNSET, 991 .tuner_type = UNSET,
1037 .tuner_addr = ADDR_UNSET, 992 .tuner_addr = ADDR_UNSET,
1038 .radio_addr = ADDR_UNSET,
1039 }, 993 },
1040 [BTTV_BOARD_MATRIX_VISION2] = { 994 [BTTV_BOARD_MATRIX_VISION2] = {
1041 .name = "MATRIX-Vision MV-Delta 2", 995 .name = "MATRIX-Vision MV-Delta 2",
1042 .video_inputs = 5, 996 .video_inputs = 5,
1043 .audio_inputs = 1, 997 /* .audio_inputs= 1, */
1044 .svhs = 3, 998 .svhs = 3,
1045 .gpiomask = 0, 999 .gpiomask = 0,
1046 .muxsel = { 2, 3, 1, 0, 0 }, 1000 .muxsel = { 2, 3, 1, 0, 0 },
@@ -1049,12 +1003,11 @@ struct tvcard bttv_tvcards[] = {
1049 .pll = PLL_28, 1003 .pll = PLL_28,
1050 .tuner_type = TUNER_ABSENT, 1004 .tuner_type = TUNER_ABSENT,
1051 .tuner_addr = ADDR_UNSET, 1005 .tuner_addr = ADDR_UNSET,
1052 .radio_addr = ADDR_UNSET,
1053 }, 1006 },
1054 [BTTV_BOARD_ZOLTRIX_GENIE] = { 1007 [BTTV_BOARD_ZOLTRIX_GENIE] = {
1055 .name = "Zoltrix Genie TV/FM", 1008 .name = "Zoltrix Genie TV/FM",
1056 .video_inputs = 3, 1009 .video_inputs = 3,
1057 .audio_inputs = 1, 1010 /* .audio_inputs= 1, */
1058 .svhs = 2, 1011 .svhs = 2,
1059 .gpiomask = 0xbcf03f, 1012 .gpiomask = 0xbcf03f,
1060 .muxsel = { 2, 3, 1, 1 }, 1013 .muxsel = { 2, 3, 1, 1 },
@@ -1064,12 +1017,11 @@ struct tvcard bttv_tvcards[] = {
1064 .pll = PLL_28, 1017 .pll = PLL_28,
1065 .tuner_type = TUNER_TEMIC_4039FR5_NTSC, 1018 .tuner_type = TUNER_TEMIC_4039FR5_NTSC,
1066 .tuner_addr = ADDR_UNSET, 1019 .tuner_addr = ADDR_UNSET,
1067 .radio_addr = ADDR_UNSET,
1068 }, 1020 },
1069 [BTTV_BOARD_TERRATVRADIO] = { 1021 [BTTV_BOARD_TERRATVRADIO] = {
1070 .name = "Terratec TV/Radio+", 1022 .name = "Terratec TV/Radio+",
1071 .video_inputs = 3, 1023 .video_inputs = 3,
1072 .audio_inputs = 1, 1024 /* .audio_inputs= 1, */
1073 .svhs = 2, 1025 .svhs = 2,
1074 .gpiomask = 0x70000, 1026 .gpiomask = 0x70000,
1075 .muxsel = { 2, 3, 1, 1 }, 1027 .muxsel = { 2, 3, 1, 1 },
@@ -1080,7 +1032,6 @@ struct tvcard bttv_tvcards[] = {
1080 .pll = PLL_35, 1032 .pll = PLL_35,
1081 .tuner_type = TUNER_PHILIPS_PAL_I, 1033 .tuner_type = TUNER_PHILIPS_PAL_I,
1082 .tuner_addr = ADDR_UNSET, 1034 .tuner_addr = ADDR_UNSET,
1083 .radio_addr = ADDR_UNSET,
1084 .has_radio = 1, 1035 .has_radio = 1,
1085 }, 1036 },
1086 1037
@@ -1088,7 +1039,7 @@ struct tvcard bttv_tvcards[] = {
1088 [BTTV_BOARD_DYNALINK] = { 1039 [BTTV_BOARD_DYNALINK] = {
1089 .name = "Askey CPH03x/ Dynalink Magic TView", 1040 .name = "Askey CPH03x/ Dynalink Magic TView",
1090 .video_inputs = 3, 1041 .video_inputs = 3,
1091 .audio_inputs = 1, 1042 /* .audio_inputs= 1, */
1092 .svhs = 2, 1043 .svhs = 2,
1093 .gpiomask = 15, 1044 .gpiomask = 15,
1094 .muxsel = { 2, 3, 1, 1 }, 1045 .muxsel = { 2, 3, 1, 1 },
@@ -1098,12 +1049,11 @@ struct tvcard bttv_tvcards[] = {
1098 .pll = PLL_28, 1049 .pll = PLL_28,
1099 .tuner_type = UNSET, 1050 .tuner_type = UNSET,
1100 .tuner_addr = ADDR_UNSET, 1051 .tuner_addr = ADDR_UNSET,
1101 .radio_addr = ADDR_UNSET,
1102 }, 1052 },
1103 [BTTV_BOARD_GVBCTV3PCI] = { 1053 [BTTV_BOARD_GVBCTV3PCI] = {
1104 .name = "IODATA GV-BCTV3/PCI", 1054 .name = "IODATA GV-BCTV3/PCI",
1105 .video_inputs = 3, 1055 .video_inputs = 3,
1106 .audio_inputs = 1, 1056 /* .audio_inputs= 1, */
1107 .svhs = 2, 1057 .svhs = 2,
1108 .gpiomask = 0x010f00, 1058 .gpiomask = 0x010f00,
1109 .muxsel = {2, 3, 0, 0 }, 1059 .muxsel = {2, 3, 0, 0 },
@@ -1112,24 +1062,22 @@ struct tvcard bttv_tvcards[] = {
1112 .pll = PLL_28, 1062 .pll = PLL_28,
1113 .tuner_type = TUNER_ALPS_TSHC6_NTSC, 1063 .tuner_type = TUNER_ALPS_TSHC6_NTSC,
1114 .tuner_addr = ADDR_UNSET, 1064 .tuner_addr = ADDR_UNSET,
1115 .radio_addr = ADDR_UNSET,
1116 .audio_mode_gpio= gvbctv3pci_audio, 1065 .audio_mode_gpio= gvbctv3pci_audio,
1117 }, 1066 },
1118 [BTTV_BOARD_PXELVWPLTVPAK] = { 1067 [BTTV_BOARD_PXELVWPLTVPAK] = {
1119 .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", 1068 .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP",
1120 .video_inputs = 5, 1069 .video_inputs = 5,
1121 .audio_inputs = 1, 1070 /* .audio_inputs= 1, */
1122 .svhs = 3, 1071 .svhs = 3,
1123 .gpiomask = 0xAA0000, 1072 .gpiomask = 0xAA0000,
1124 .muxsel = { 2,3,1,1,-1 }, 1073 .muxsel = { 2, 3, 1, 1, -1 },
1125 .digital_mode = DIGITAL_MODE_CAMERA, 1074 /* .digital_mode= DIGITAL_MODE_CAMERA, */
1126 .gpiomux = { 0x20000, 0, 0x80000, 0x80000 }, 1075 .gpiomux = { 0x20000, 0, 0x80000, 0x80000 },
1127 .gpiomute = 0xa8000, 1076 .gpiomute = 0xa8000,
1128 .no_msp34xx = 1, 1077 .no_msp34xx = 1,
1129 .pll = PLL_28, 1078 .pll = PLL_28,
1130 .tuner_type = TUNER_PHILIPS_PAL_I, 1079 .tuner_type = TUNER_PHILIPS_PAL_I,
1131 .tuner_addr = ADDR_UNSET, 1080 .tuner_addr = ADDR_UNSET,
1132 .radio_addr = ADDR_UNSET,
1133 .has_remote = 1, 1081 .has_remote = 1,
1134 /* GPIO wiring: (different from Rev.4C !) 1082 /* GPIO wiring: (different from Rev.4C !)
1135 GPIO17: U4.A0 (first hef4052bt) 1083 GPIO17: U4.A0 (first hef4052bt)
@@ -1144,7 +1092,7 @@ struct tvcard bttv_tvcards[] = {
1144 [BTTV_BOARD_EAGLE] = { 1092 [BTTV_BOARD_EAGLE] = {
1145 .name = "Eagle Wireless Capricorn2 (bt878A)", 1093 .name = "Eagle Wireless Capricorn2 (bt878A)",
1146 .video_inputs = 4, 1094 .video_inputs = 4,
1147 .audio_inputs = 1, 1095 /* .audio_inputs= 1, */
1148 .svhs = 2, 1096 .svhs = 2,
1149 .gpiomask = 7, 1097 .gpiomask = 7,
1150 .muxsel = { 2, 0, 1, 1 }, 1098 .muxsel = { 2, 0, 1, 1 },
@@ -1153,7 +1101,6 @@ struct tvcard bttv_tvcards[] = {
1153 .pll = PLL_28, 1101 .pll = PLL_28,
1154 .tuner_type = UNSET /* TUNER_ALPS_TMDH2_NTSC */, 1102 .tuner_type = UNSET /* TUNER_ALPS_TMDH2_NTSC */,
1155 .tuner_addr = ADDR_UNSET, 1103 .tuner_addr = ADDR_UNSET,
1156 .radio_addr = ADDR_UNSET,
1157 }, 1104 },
1158 1105
1159 /* ---- card 0x34 ---------------------------------- */ 1106 /* ---- card 0x34 ---------------------------------- */
@@ -1161,7 +1108,7 @@ struct tvcard bttv_tvcards[] = {
1161 /* David Härdeman <david@2gen.com> */ 1108 /* David Härdeman <david@2gen.com> */
1162 .name = "Pinnacle PCTV Studio Pro", 1109 .name = "Pinnacle PCTV Studio Pro",
1163 .video_inputs = 4, 1110 .video_inputs = 4,
1164 .audio_inputs = 1, 1111 /* .audio_inputs= 1, */
1165 .svhs = 3, 1112 .svhs = 3,
1166 .gpiomask = 0x03000F, 1113 .gpiomask = 0x03000F,
1167 .muxsel = { 2, 3, 1, 1 }, 1114 .muxsel = { 2, 3, 1, 1 },
@@ -1180,14 +1127,13 @@ struct tvcard bttv_tvcards[] = {
1180 .pll = PLL_28, 1127 .pll = PLL_28,
1181 .tuner_type = UNSET, 1128 .tuner_type = UNSET,
1182 .tuner_addr = ADDR_UNSET, 1129 .tuner_addr = ADDR_UNSET,
1183 .radio_addr = ADDR_UNSET,
1184 }, 1130 },
1185 [BTTV_BOARD_TVIEW_RDS_FM] = { 1131 [BTTV_BOARD_TVIEW_RDS_FM] = {
1186 /* Claas Langbehn <claas@bigfoot.com>, 1132 /* Claas Langbehn <claas@bigfoot.com>,
1187 Sven Grothklags <sven@upb.de> */ 1133 Sven Grothklags <sven@upb.de> */
1188 .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", 1134 .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS",
1189 .video_inputs = 4, 1135 .video_inputs = 4,
1190 .audio_inputs = 3, 1136 /* .audio_inputs= 3, */
1191 .svhs = 2, 1137 .svhs = 2,
1192 .gpiomask = 0x1c, 1138 .gpiomask = 0x1c,
1193 .muxsel = { 2, 3, 1, 1 }, 1139 .muxsel = { 2, 3, 1, 1 },
@@ -1197,7 +1143,6 @@ struct tvcard bttv_tvcards[] = {
1197 .pll = PLL_28, 1143 .pll = PLL_28,
1198 .tuner_type = TUNER_PHILIPS_PAL, 1144 .tuner_type = TUNER_PHILIPS_PAL,
1199 .tuner_addr = ADDR_UNSET, 1145 .tuner_addr = ADDR_UNSET,
1200 .radio_addr = ADDR_UNSET,
1201 .has_radio = 1, 1146 .has_radio = 1,
1202 }, 1147 },
1203 [BTTV_BOARD_LIFETEC_9415] = { 1148 [BTTV_BOARD_LIFETEC_9415] = {
@@ -1208,7 +1153,7 @@ struct tvcard bttv_tvcards[] = {
1208 options tuner type=5 */ 1153 options tuner type=5 */
1209 .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", 1154 .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]",
1210 .video_inputs = 4, 1155 .video_inputs = 4,
1211 .audio_inputs = 1, 1156 /* .audio_inputs= 1, */
1212 .svhs = 2, 1157 .svhs = 2,
1213 .gpiomask = 0x18e0, 1158 .gpiomask = 0x18e0,
1214 .muxsel = { 2, 3, 1, 1 }, 1159 .muxsel = { 2, 3, 1, 1 },
@@ -1221,14 +1166,13 @@ struct tvcard bttv_tvcards[] = {
1221 .pll = PLL_28, 1166 .pll = PLL_28,
1222 .tuner_type = UNSET, 1167 .tuner_type = UNSET,
1223 .tuner_addr = ADDR_UNSET, 1168 .tuner_addr = ADDR_UNSET,
1224 .radio_addr = ADDR_UNSET,
1225 }, 1169 },
1226 [BTTV_BOARD_BESTBUY_EASYTV] = { 1170 [BTTV_BOARD_BESTBUY_EASYTV] = {
1227 /* Miguel Angel Alvarez <maacruz@navegalia.com> 1171 /* Miguel Angel Alvarez <maacruz@navegalia.com>
1228 old Easy TV BT848 version (model CPH031) */ 1172 old Easy TV BT848 version (model CPH031) */
1229 .name = "Askey CPH031/ BESTBUY Easy TV", 1173 .name = "Askey CPH031/ BESTBUY Easy TV",
1230 .video_inputs = 4, 1174 .video_inputs = 4,
1231 .audio_inputs = 1, 1175 /* .audio_inputs= 1, */
1232 .svhs = 2, 1176 .svhs = 2,
1233 .gpiomask = 0xF, 1177 .gpiomask = 0xF,
1234 .muxsel = { 2, 3, 1, 0 }, 1178 .muxsel = { 2, 3, 1, 0 },
@@ -1238,7 +1182,6 @@ struct tvcard bttv_tvcards[] = {
1238 .pll = PLL_28, 1182 .pll = PLL_28,
1239 .tuner_type = TUNER_TEMIC_PAL, 1183 .tuner_type = TUNER_TEMIC_PAL,
1240 .tuner_addr = ADDR_UNSET, 1184 .tuner_addr = ADDR_UNSET,
1241 .radio_addr = ADDR_UNSET,
1242 }, 1185 },
1243 1186
1244 /* ---- card 0x38 ---------------------------------- */ 1187 /* ---- card 0x38 ---------------------------------- */
@@ -1246,7 +1189,7 @@ struct tvcard bttv_tvcards[] = {
1246 /* Gordon Heydon <gjheydon@bigfoot.com ('98) */ 1189 /* Gordon Heydon <gjheydon@bigfoot.com ('98) */
1247 .name = "Lifeview FlyVideo 98FM LR50", 1190 .name = "Lifeview FlyVideo 98FM LR50",
1248 .video_inputs = 4, 1191 .video_inputs = 4,
1249 .audio_inputs = 3, 1192 /* .audio_inputs= 3, */
1250 .svhs = 2, 1193 .svhs = 2,
1251 .gpiomask = 0x1800, 1194 .gpiomask = 0x1800,
1252 .muxsel = { 2, 3, 1, 1 }, 1195 .muxsel = { 2, 3, 1, 1 },
@@ -1255,7 +1198,6 @@ struct tvcard bttv_tvcards[] = {
1255 .pll = PLL_28, 1198 .pll = PLL_28,
1256 .tuner_type = TUNER_PHILIPS_PAL, 1199 .tuner_type = TUNER_PHILIPS_PAL,
1257 .tuner_addr = ADDR_UNSET, 1200 .tuner_addr = ADDR_UNSET,
1258 .radio_addr = ADDR_UNSET,
1259 }, 1201 },
1260 /* This is the ultimate cheapo capture card 1202 /* This is the ultimate cheapo capture card
1261 * just a BT848A on a small PCB! 1203 * just a BT848A on a small PCB!
@@ -1263,7 +1205,7 @@ struct tvcard bttv_tvcards[] = {
1263 [BTTV_BOARD_GRANDTEC] = { 1205 [BTTV_BOARD_GRANDTEC] = {
1264 .name = "GrandTec 'Grand Video Capture' (Bt848)", 1206 .name = "GrandTec 'Grand Video Capture' (Bt848)",
1265 .video_inputs = 2, 1207 .video_inputs = 2,
1266 .audio_inputs = 0, 1208 /* .audio_inputs= 0, */
1267 .svhs = 1, 1209 .svhs = 1,
1268 .gpiomask = 0, 1210 .gpiomask = 0,
1269 .muxsel = { 3, 1 }, 1211 .muxsel = { 3, 1 },
@@ -1273,13 +1215,12 @@ struct tvcard bttv_tvcards[] = {
1273 .pll = PLL_35, 1215 .pll = PLL_35,
1274 .tuner_type = TUNER_ABSENT, 1216 .tuner_type = TUNER_ABSENT,
1275 .tuner_addr = ADDR_UNSET, 1217 .tuner_addr = ADDR_UNSET,
1276 .radio_addr = ADDR_UNSET,
1277 }, 1218 },
1278 [BTTV_BOARD_ASKEY_CPH060] = { 1219 [BTTV_BOARD_ASKEY_CPH060] = {
1279 /* Daniel Herrington <daniel.herrington@home.com> */ 1220 /* Daniel Herrington <daniel.herrington@home.com> */
1280 .name = "Askey CPH060/ Phoebe TV Master Only (No FM)", 1221 .name = "Askey CPH060/ Phoebe TV Master Only (No FM)",
1281 .video_inputs = 3, 1222 .video_inputs = 3,
1282 .audio_inputs = 1, 1223 /* .audio_inputs= 1, */
1283 .svhs = 2, 1224 .svhs = 2,
1284 .gpiomask = 0xe00, 1225 .gpiomask = 0xe00,
1285 .muxsel = { 2, 3, 1, 1}, 1226 .muxsel = { 2, 3, 1, 1},
@@ -1289,13 +1230,12 @@ struct tvcard bttv_tvcards[] = {
1289 .pll = PLL_28, 1230 .pll = PLL_28,
1290 .tuner_type = TUNER_TEMIC_4036FY5_NTSC, 1231 .tuner_type = TUNER_TEMIC_4036FY5_NTSC,
1291 .tuner_addr = ADDR_UNSET, 1232 .tuner_addr = ADDR_UNSET,
1292 .radio_addr = ADDR_UNSET,
1293 }, 1233 },
1294 [BTTV_BOARD_ASKEY_CPH03X] = { 1234 [BTTV_BOARD_ASKEY_CPH03X] = {
1295 /* Matti Mottus <mottus@physic.ut.ee> */ 1235 /* Matti Mottus <mottus@physic.ut.ee> */
1296 .name = "Askey CPH03x TV Capturer", 1236 .name = "Askey CPH03x TV Capturer",
1297 .video_inputs = 4, 1237 .video_inputs = 4,
1298 .audio_inputs = 1, 1238 /* .audio_inputs= 1, */
1299 .svhs = 2, 1239 .svhs = 2,
1300 .gpiomask = 0x03000F, 1240 .gpiomask = 0x03000F,
1301 .muxsel = { 2, 3, 1, 0 }, 1241 .muxsel = { 2, 3, 1, 0 },
@@ -1304,7 +1244,6 @@ struct tvcard bttv_tvcards[] = {
1304 .pll = PLL_28, 1244 .pll = PLL_28,
1305 .tuner_type = TUNER_TEMIC_PAL, 1245 .tuner_type = TUNER_TEMIC_PAL,
1306 .tuner_addr = ADDR_UNSET, 1246 .tuner_addr = ADDR_UNSET,
1307 .radio_addr = ADDR_UNSET,
1308 }, 1247 },
1309 1248
1310 /* ---- card 0x3c ---------------------------------- */ 1249 /* ---- card 0x3c ---------------------------------- */
@@ -1312,8 +1251,8 @@ struct tvcard bttv_tvcards[] = {
1312 /* Philip Blundell <philb@gnu.org> */ 1251 /* Philip Blundell <philb@gnu.org> */
1313 .name = "Modular Technology MM100PCTV", 1252 .name = "Modular Technology MM100PCTV",
1314 .video_inputs = 2, 1253 .video_inputs = 2,
1315 .audio_inputs = 2, 1254 /* .audio_inputs= 2, */
1316 .svhs = UNSET, 1255 .svhs = NO_SVHS,
1317 .gpiomask = 11, 1256 .gpiomask = 11,
1318 .muxsel = { 2, 3, 1, 1 }, 1257 .muxsel = { 2, 3, 1, 1 },
1319 .gpiomux = { 2, 0, 0, 1 }, 1258 .gpiomux = { 2, 0, 0, 1 },
@@ -1321,13 +1260,12 @@ struct tvcard bttv_tvcards[] = {
1321 .pll = PLL_35, 1260 .pll = PLL_35,
1322 .tuner_type = TUNER_TEMIC_PAL, 1261 .tuner_type = TUNER_TEMIC_PAL,
1323 .tuner_addr = ADDR_UNSET, 1262 .tuner_addr = ADDR_UNSET,
1324 .radio_addr = ADDR_UNSET,
1325 }, 1263 },
1326 [BTTV_BOARD_GMV1] = { 1264 [BTTV_BOARD_GMV1] = {
1327 /* Adrian Cox <adrian@humboldt.co.uk */ 1265 /* Adrian Cox <adrian@humboldt.co.uk */
1328 .name = "AG Electronics GMV1", 1266 .name = "AG Electronics GMV1",
1329 .video_inputs = 2, 1267 .video_inputs = 2,
1330 .audio_inputs = 0, 1268 /* .audio_inputs= 0, */
1331 .svhs = 1, 1269 .svhs = 1,
1332 .gpiomask = 0xF, 1270 .gpiomask = 0xF,
1333 .muxsel = { 2, 2 }, 1271 .muxsel = { 2, 2 },
@@ -1337,7 +1275,6 @@ struct tvcard bttv_tvcards[] = {
1337 .pll = PLL_28, 1275 .pll = PLL_28,
1338 .tuner_type = TUNER_ABSENT, 1276 .tuner_type = TUNER_ABSENT,
1339 .tuner_addr = ADDR_UNSET, 1277 .tuner_addr = ADDR_UNSET,
1340 .radio_addr = ADDR_UNSET,
1341 }, 1278 },
1342 [BTTV_BOARD_BESTBUY_EASYTV2] = { 1279 [BTTV_BOARD_BESTBUY_EASYTV2] = {
1343 /* Miguel Angel Alvarez <maacruz@navegalia.com> 1280 /* Miguel Angel Alvarez <maacruz@navegalia.com>
@@ -1345,7 +1282,7 @@ struct tvcard bttv_tvcards[] = {
1345 special thanks to Informatica Mieres for providing the card */ 1282 special thanks to Informatica Mieres for providing the card */
1346 .name = "Askey CPH061/ BESTBUY Easy TV (bt878)", 1283 .name = "Askey CPH061/ BESTBUY Easy TV (bt878)",
1347 .video_inputs = 3, 1284 .video_inputs = 3,
1348 .audio_inputs = 2, 1285 /* .audio_inputs= 2, */
1349 .svhs = 2, 1286 .svhs = 2,
1350 .gpiomask = 0xFF, 1287 .gpiomask = 0xFF,
1351 .muxsel = { 2, 3, 1, 0 }, 1288 .muxsel = { 2, 3, 1, 0 },
@@ -1355,13 +1292,12 @@ struct tvcard bttv_tvcards[] = {
1355 .pll = PLL_28, 1292 .pll = PLL_28,
1356 .tuner_type = TUNER_PHILIPS_PAL, 1293 .tuner_type = TUNER_PHILIPS_PAL,
1357 .tuner_addr = ADDR_UNSET, 1294 .tuner_addr = ADDR_UNSET,
1358 .radio_addr = ADDR_UNSET,
1359 }, 1295 },
1360 [BTTV_BOARD_ATI_TVWONDER] = { 1296 [BTTV_BOARD_ATI_TVWONDER] = {
1361 /* Lukas Gebauer <geby@volny.cz> */ 1297 /* Lukas Gebauer <geby@volny.cz> */
1362 .name = "ATI TV-Wonder", 1298 .name = "ATI TV-Wonder",
1363 .video_inputs = 3, 1299 .video_inputs = 3,
1364 .audio_inputs = 1, 1300 /* .audio_inputs= 1, */
1365 .svhs = 2, 1301 .svhs = 2,
1366 .gpiomask = 0xf03f, 1302 .gpiomask = 0xf03f,
1367 .muxsel = { 2, 3, 1, 0 }, 1303 .muxsel = { 2, 3, 1, 0 },
@@ -1370,7 +1306,6 @@ struct tvcard bttv_tvcards[] = {
1370 .pll = PLL_28, 1306 .pll = PLL_28,
1371 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, 1307 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
1372 .tuner_addr = ADDR_UNSET, 1308 .tuner_addr = ADDR_UNSET,
1373 .radio_addr = ADDR_UNSET,
1374 }, 1309 },
1375 1310
1376 /* ---- card 0x40 ---------------------------------- */ 1311 /* ---- card 0x40 ---------------------------------- */
@@ -1378,8 +1313,8 @@ struct tvcard bttv_tvcards[] = {
1378 /* Lukas Gebauer <geby@volny.cz> */ 1313 /* Lukas Gebauer <geby@volny.cz> */
1379 .name = "ATI TV-Wonder VE", 1314 .name = "ATI TV-Wonder VE",
1380 .video_inputs = 2, 1315 .video_inputs = 2,
1381 .audio_inputs = 1, 1316 /* .audio_inputs= 1, */
1382 .svhs = UNSET, 1317 .svhs = NO_SVHS,
1383 .gpiomask = 1, 1318 .gpiomask = 1,
1384 .muxsel = { 2, 3, 0, 1 }, 1319 .muxsel = { 2, 3, 0, 1 },
1385 .gpiomux = { 0, 0, 1, 0 }, 1320 .gpiomux = { 0, 0, 1, 0 },
@@ -1387,13 +1322,12 @@ struct tvcard bttv_tvcards[] = {
1387 .pll = PLL_28, 1322 .pll = PLL_28,
1388 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, 1323 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
1389 .tuner_addr = ADDR_UNSET, 1324 .tuner_addr = ADDR_UNSET,
1390 .radio_addr = ADDR_UNSET,
1391 }, 1325 },
1392 [BTTV_BOARD_FLYVIDEO2000] = { 1326 [BTTV_BOARD_FLYVIDEO2000] = {
1393 /* DeeJay <deejay@westel900.net (2000S) */ 1327 /* DeeJay <deejay@westel900.net (2000S) */
1394 .name = "Lifeview FlyVideo 2000S LR90", 1328 .name = "Lifeview FlyVideo 2000S LR90",
1395 .video_inputs = 3, 1329 .video_inputs = 3,
1396 .audio_inputs = 3, 1330 /* .audio_inputs= 3, */
1397 .svhs = 2, 1331 .svhs = 2,
1398 .gpiomask = 0x18e0, 1332 .gpiomask = 0x18e0,
1399 .muxsel = { 2, 3, 0, 1 }, 1333 .muxsel = { 2, 3, 0, 1 },
@@ -1409,12 +1343,11 @@ struct tvcard bttv_tvcards[] = {
1409 .pll = PLL_28, 1343 .pll = PLL_28,
1410 .tuner_type = TUNER_PHILIPS_PAL, 1344 .tuner_type = TUNER_PHILIPS_PAL,
1411 .tuner_addr = ADDR_UNSET, 1345 .tuner_addr = ADDR_UNSET,
1412 .radio_addr = ADDR_UNSET,
1413 }, 1346 },
1414 [BTTV_BOARD_TERRATVALUER] = { 1347 [BTTV_BOARD_TERRATVALUER] = {
1415 .name = "Terratec TValueRadio", 1348 .name = "Terratec TValueRadio",
1416 .video_inputs = 3, 1349 .video_inputs = 3,
1417 .audio_inputs = 1, 1350 /* .audio_inputs= 1, */
1418 .svhs = 2, 1351 .svhs = 2,
1419 .gpiomask = 0xffff00, 1352 .gpiomask = 0xffff00,
1420 .muxsel = { 2, 3, 1, 1 }, 1353 .muxsel = { 2, 3, 1, 1 },
@@ -1424,14 +1357,13 @@ struct tvcard bttv_tvcards[] = {
1424 .pll = PLL_28, 1357 .pll = PLL_28,
1425 .tuner_type = TUNER_PHILIPS_PAL, 1358 .tuner_type = TUNER_PHILIPS_PAL,
1426 .tuner_addr = ADDR_UNSET, 1359 .tuner_addr = ADDR_UNSET,
1427 .radio_addr = ADDR_UNSET,
1428 .has_radio = 1, 1360 .has_radio = 1,
1429 }, 1361 },
1430 [BTTV_BOARD_GVBCTV4PCI] = { 1362 [BTTV_BOARD_GVBCTV4PCI] = {
1431 /* TANAKA Kei <peg00625@nifty.com> */ 1363 /* TANAKA Kei <peg00625@nifty.com> */
1432 .name = "IODATA GV-BCTV4/PCI", 1364 .name = "IODATA GV-BCTV4/PCI",
1433 .video_inputs = 3, 1365 .video_inputs = 3,
1434 .audio_inputs = 1, 1366 /* .audio_inputs= 1, */
1435 .svhs = 2, 1367 .svhs = 2,
1436 .gpiomask = 0x010f00, 1368 .gpiomask = 0x010f00,
1437 .muxsel = {2, 3, 0, 0 }, 1369 .muxsel = {2, 3, 0, 0 },
@@ -1440,7 +1372,6 @@ struct tvcard bttv_tvcards[] = {
1440 .pll = PLL_28, 1372 .pll = PLL_28,
1441 .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, 1373 .tuner_type = TUNER_SHARP_2U5JF5540_NTSC,
1442 .tuner_addr = ADDR_UNSET, 1374 .tuner_addr = ADDR_UNSET,
1443 .radio_addr = ADDR_UNSET,
1444 .audio_mode_gpio= gvbctv3pci_audio, 1375 .audio_mode_gpio= gvbctv3pci_audio,
1445 }, 1376 },
1446 1377
@@ -1450,8 +1381,8 @@ struct tvcard bttv_tvcards[] = {
1450 /* try "insmod msp3400 simple=0" if you have 1381 /* try "insmod msp3400 simple=0" if you have
1451 * sound problems with this card. */ 1382 * sound problems with this card. */
1452 .video_inputs = 4, 1383 .video_inputs = 4,
1453 .audio_inputs = 1, 1384 /* .audio_inputs= 1, */
1454 .svhs = UNSET, 1385 .svhs = NO_SVHS,
1455 .gpiomask = 0x4f8a00, 1386 .gpiomask = 0x4f8a00,
1456 /* 0x100000: 1=MSP enabled (0=disable again) 1387 /* 0x100000: 1=MSP enabled (0=disable again)
1457 * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ 1388 * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */
@@ -1462,7 +1393,6 @@ struct tvcard bttv_tvcards[] = {
1462 .muxsel = { 2, 3 ,0 ,1 }, 1393 .muxsel = { 2, 3 ,0 ,1 },
1463 .tuner_type = TUNER_MT2032, 1394 .tuner_type = TUNER_MT2032,
1464 .tuner_addr = ADDR_UNSET, 1395 .tuner_addr = ADDR_UNSET,
1465 .radio_addr = ADDR_UNSET,
1466 .pll = PLL_28, 1396 .pll = PLL_28,
1467 .has_radio = 1, 1397 .has_radio = 1,
1468 }, 1398 },
@@ -1471,8 +1401,8 @@ struct tvcard bttv_tvcards[] = {
1471 /* try "insmod msp3400 simple=0" if you have 1401 /* try "insmod msp3400 simple=0" if you have
1472 * sound problems with this card. */ 1402 * sound problems with this card. */
1473 .video_inputs = 4, 1403 .video_inputs = 4,
1474 .audio_inputs = 1, 1404 /* .audio_inputs= 1, */
1475 .svhs = UNSET, 1405 .svhs = NO_SVHS,
1476 .gpiomask = 0x4f8a00, 1406 .gpiomask = 0x4f8a00,
1477 /* 0x100000: 1=MSP enabled (0=disable again) 1407 /* 0x100000: 1=MSP enabled (0=disable again)
1478 * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ 1408 * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */
@@ -1483,7 +1413,6 @@ struct tvcard bttv_tvcards[] = {
1483 .muxsel = { 2, 3 ,0 ,1 }, 1413 .muxsel = { 2, 3 ,0 ,1 },
1484 .tuner_type = TUNER_MT2032, 1414 .tuner_type = TUNER_MT2032,
1485 .tuner_addr = ADDR_UNSET, 1415 .tuner_addr = ADDR_UNSET,
1486 .radio_addr = ADDR_UNSET,
1487 .pll = PLL_28, 1416 .pll = PLL_28,
1488 .has_radio = 1, 1417 .has_radio = 1,
1489 }, 1418 },
@@ -1491,10 +1420,9 @@ struct tvcard bttv_tvcards[] = {
1491 /* Philip Blundell <pb@nexus.co.uk> */ 1420 /* Philip Blundell <pb@nexus.co.uk> */
1492 .name = "Active Imaging AIMMS", 1421 .name = "Active Imaging AIMMS",
1493 .video_inputs = 1, 1422 .video_inputs = 1,
1494 .audio_inputs = 0, 1423 /* .audio_inputs= 0, */
1495 .tuner_type = TUNER_ABSENT, 1424 .tuner_type = TUNER_ABSENT,
1496 .tuner_addr = ADDR_UNSET, 1425 .tuner_addr = ADDR_UNSET,
1497 .radio_addr = ADDR_UNSET,
1498 .pll = PLL_28, 1426 .pll = PLL_28,
1499 .muxsel = { 2 }, 1427 .muxsel = { 2 },
1500 .gpiomask = 0 1428 .gpiomask = 0
@@ -1503,7 +1431,7 @@ struct tvcard bttv_tvcards[] = {
1503 /* Tomasz Pyra <hellfire@sedez.iq.pl> */ 1431 /* Tomasz Pyra <hellfire@sedez.iq.pl> */
1504 .name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)", 1432 .name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)",
1505 .video_inputs = 3, 1433 .video_inputs = 3,
1506 .audio_inputs = 4, 1434 /* .audio_inputs= 4, */
1507 .svhs = 2, 1435 .svhs = 2,
1508 .gpiomask = 15, 1436 .gpiomask = 15,
1509 .muxsel = { 2, 3, 1, 1 }, 1437 .muxsel = { 2, 3, 1, 1 },
@@ -1513,7 +1441,6 @@ struct tvcard bttv_tvcards[] = {
1513 .pll = PLL_28, 1441 .pll = PLL_28,
1514 .tuner_type = TUNER_LG_PAL_I_FM, 1442 .tuner_type = TUNER_LG_PAL_I_FM,
1515 .tuner_addr = ADDR_UNSET, 1443 .tuner_addr = ADDR_UNSET,
1516 .radio_addr = ADDR_UNSET,
1517 .has_remote = 1, 1444 .has_remote = 1,
1518 /* GPIO wiring: 1445 /* GPIO wiring:
1519 GPIO0: U4.A0 (hef4052bt) 1446 GPIO0: U4.A0 (hef4052bt)
@@ -1526,14 +1453,13 @@ struct tvcard bttv_tvcards[] = {
1526 [BTTV_BOARD_FLYVIDEO98EZ] = { 1453 [BTTV_BOARD_FLYVIDEO98EZ] = {
1527 .name = "Lifeview FlyVideo 98EZ (capture only) LR51", 1454 .name = "Lifeview FlyVideo 98EZ (capture only) LR51",
1528 .video_inputs = 4, 1455 .video_inputs = 4,
1529 .audio_inputs = 0, 1456 /* .audio_inputs= 0, */
1530 .svhs = 2, 1457 .svhs = 2,
1531 .muxsel = { 2, 3, 1, 1 }, /* AV1, AV2, SVHS, CVid adapter on SVHS */ 1458 .muxsel = { 2, 3, 1, 1 }, /* AV1, AV2, SVHS, CVid adapter on SVHS */
1532 .pll = PLL_28, 1459 .pll = PLL_28,
1533 .no_msp34xx = 1, 1460 .no_msp34xx = 1,
1534 .tuner_type = TUNER_ABSENT, 1461 .tuner_type = TUNER_ABSENT,
1535 .tuner_addr = ADDR_UNSET, 1462 .tuner_addr = ADDR_UNSET,
1536 .radio_addr = ADDR_UNSET,
1537 }, 1463 },
1538 1464
1539 /* ---- card 0x48 ---------------------------------- */ 1465 /* ---- card 0x48 ---------------------------------- */
@@ -1541,7 +1467,7 @@ struct tvcard bttv_tvcards[] = {
1541 /* Dariusz Kowalewski <darekk@automex.pl> */ 1467 /* Dariusz Kowalewski <darekk@automex.pl> */
1542 .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", 1468 .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)",
1543 .video_inputs = 4, 1469 .video_inputs = 4,
1544 .audio_inputs = 1, 1470 /* .audio_inputs= 1, */
1545 .svhs = 2, 1471 .svhs = 2,
1546 .gpiomask = 0x3f, 1472 .gpiomask = 0x3f,
1547 .muxsel = { 2, 3, 1, 1 }, 1473 .muxsel = { 2, 3, 1, 1 },
@@ -1553,7 +1479,6 @@ struct tvcard bttv_tvcards[] = {
1553 .pll = PLL_28, 1479 .pll = PLL_28,
1554 .tuner_type = TUNER_PHILIPS_PAL, 1480 .tuner_type = TUNER_PHILIPS_PAL,
1555 .tuner_addr = ADDR_UNSET, 1481 .tuner_addr = ADDR_UNSET,
1556 .radio_addr = ADDR_UNSET,
1557 .audio_mode_gpio= pvbt878p9b_audio, /* Note: not all cards have stereo */ 1482 .audio_mode_gpio= pvbt878p9b_audio, /* Note: not all cards have stereo */
1558 .has_radio = 1, /* Note: not all cards have radio */ 1483 .has_radio = 1, /* Note: not all cards have radio */
1559 .has_remote = 1, 1484 .has_remote = 1,
@@ -1570,7 +1495,7 @@ struct tvcard bttv_tvcards[] = {
1570 /* you must jumper JP5 for the card to work */ 1495 /* you must jumper JP5 for the card to work */
1571 .name = "Sensoray 311", 1496 .name = "Sensoray 311",
1572 .video_inputs = 5, 1497 .video_inputs = 5,
1573 .audio_inputs = 0, 1498 /* .audio_inputs= 0, */
1574 .svhs = 4, 1499 .svhs = 4,
1575 .gpiomask = 0, 1500 .gpiomask = 0,
1576 .muxsel = { 2, 3, 1, 0, 0 }, 1501 .muxsel = { 2, 3, 1, 0, 0 },
@@ -1578,14 +1503,13 @@ struct tvcard bttv_tvcards[] = {
1578 .needs_tvaudio = 0, 1503 .needs_tvaudio = 0,
1579 .tuner_type = TUNER_ABSENT, 1504 .tuner_type = TUNER_ABSENT,
1580 .tuner_addr = ADDR_UNSET, 1505 .tuner_addr = ADDR_UNSET,
1581 .radio_addr = ADDR_UNSET,
1582 }, 1506 },
1583 [BTTV_BOARD_RV605] = { 1507 [BTTV_BOARD_RV605] = {
1584 /* Miguel Freitas <miguel@cetuc.puc-rio.br> */ 1508 /* Miguel Freitas <miguel@cetuc.puc-rio.br> */
1585 .name = "RemoteVision MX (RV605)", 1509 .name = "RemoteVision MX (RV605)",
1586 .video_inputs = 16, 1510 .video_inputs = 16,
1587 .audio_inputs = 0, 1511 /* .audio_inputs= 0, */
1588 .svhs = UNSET, 1512 .svhs = NO_SVHS,
1589 .gpiomask = 0x00, 1513 .gpiomask = 0x00,
1590 .gpiomask2 = 0x07ff, 1514 .gpiomask2 = 0x07ff,
1591 .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, 1515 .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03,
@@ -1594,13 +1518,12 @@ struct tvcard bttv_tvcards[] = {
1594 .no_tda9875 = 1, 1518 .no_tda9875 = 1,
1595 .tuner_type = TUNER_ABSENT, 1519 .tuner_type = TUNER_ABSENT,
1596 .tuner_addr = ADDR_UNSET, 1520 .tuner_addr = ADDR_UNSET,
1597 .radio_addr = ADDR_UNSET,
1598 .muxsel_hook = rv605_muxsel, 1521 .muxsel_hook = rv605_muxsel,
1599 }, 1522 },
1600 [BTTV_BOARD_POWERCLR_MTV878] = { 1523 [BTTV_BOARD_POWERCLR_MTV878] = {
1601 .name = "Powercolor MTV878/ MTV878R/ MTV878F", 1524 .name = "Powercolor MTV878/ MTV878R/ MTV878F",
1602 .video_inputs = 3, 1525 .video_inputs = 3,
1603 .audio_inputs = 2, 1526 /* .audio_inputs= 2, */
1604 .svhs = 2, 1527 .svhs = 2,
1605 .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */ 1528 .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */
1606 .muxsel = { 2, 1, 1, }, 1529 .muxsel = { 2, 1, 1, },
@@ -1609,7 +1532,6 @@ struct tvcard bttv_tvcards[] = {
1609 .needs_tvaudio = 0, 1532 .needs_tvaudio = 0,
1610 .tuner_type = TUNER_PHILIPS_PAL, 1533 .tuner_type = TUNER_PHILIPS_PAL,
1611 .tuner_addr = ADDR_UNSET, 1534 .tuner_addr = ADDR_UNSET,
1612 .radio_addr = ADDR_UNSET,
1613 .pll = PLL_28, 1535 .pll = PLL_28,
1614 .has_radio = 1, 1536 .has_radio = 1,
1615 }, 1537 },
@@ -1619,7 +1541,7 @@ struct tvcard bttv_tvcards[] = {
1619 /* Masaki Suzuki <masaki@btree.org> */ 1541 /* Masaki Suzuki <masaki@btree.org> */
1620 .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", 1542 .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)",
1621 .video_inputs = 3, 1543 .video_inputs = 3,
1622 .audio_inputs = 1, 1544 /* .audio_inputs= 1, */
1623 .svhs = 2, 1545 .svhs = 2,
1624 .gpiomask = 0x140007, 1546 .gpiomask = 0x140007,
1625 .muxsel = { 2, 3, 1, 1 }, 1547 .muxsel = { 2, 3, 1, 1 },
@@ -1627,14 +1549,13 @@ struct tvcard bttv_tvcards[] = {
1627 .gpiomute = 4, 1549 .gpiomute = 4,
1628 .tuner_type = TUNER_PHILIPS_NTSC, 1550 .tuner_type = TUNER_PHILIPS_NTSC,
1629 .tuner_addr = ADDR_UNSET, 1551 .tuner_addr = ADDR_UNSET,
1630 .radio_addr = ADDR_UNSET,
1631 .audio_mode_gpio= windvr_audio, 1552 .audio_mode_gpio= windvr_audio,
1632 }, 1553 },
1633 [BTTV_BOARD_GRANDTEC_MULTI] = { 1554 [BTTV_BOARD_GRANDTEC_MULTI] = {
1634 .name = "GrandTec Multi Capture Card (Bt878)", 1555 .name = "GrandTec Multi Capture Card (Bt878)",
1635 .video_inputs = 4, 1556 .video_inputs = 4,
1636 .audio_inputs = 0, 1557 /* .audio_inputs= 0, */
1637 .svhs = UNSET, 1558 .svhs = NO_SVHS,
1638 .gpiomask = 0, 1559 .gpiomask = 0,
1639 .muxsel = { 2, 3, 1, 0 }, 1560 .muxsel = { 2, 3, 1, 0 },
1640 .gpiomux = { 0 }, 1561 .gpiomux = { 0 },
@@ -1643,12 +1564,11 @@ struct tvcard bttv_tvcards[] = {
1643 .pll = PLL_28, 1564 .pll = PLL_28,
1644 .tuner_type = TUNER_ABSENT, 1565 .tuner_type = TUNER_ABSENT,
1645 .tuner_addr = ADDR_UNSET, 1566 .tuner_addr = ADDR_UNSET,
1646 .radio_addr = ADDR_UNSET,
1647 }, 1567 },
1648 [BTTV_BOARD_KWORLD] = { 1568 [BTTV_BOARD_KWORLD] = {
1649 .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", 1569 .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF",
1650 .video_inputs = 4, 1570 .video_inputs = 4,
1651 .audio_inputs = 3, 1571 /* .audio_inputs= 3, */
1652 .svhs = 2, 1572 .svhs = 2,
1653 .gpiomask = 7, 1573 .gpiomask = 7,
1654 .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */ 1574 .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */
@@ -1665,7 +1585,6 @@ struct tvcard bttv_tvcards[] = {
1665 .pll = PLL_28, 1585 .pll = PLL_28,
1666 .tuner_type = TUNER_PHILIPS_PAL, 1586 .tuner_type = TUNER_PHILIPS_PAL,
1667 .tuner_addr = ADDR_UNSET, 1587 .tuner_addr = ADDR_UNSET,
1668 .radio_addr = ADDR_UNSET,
1669 /* Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and 1588 /* Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and
1670 radio signal strength indicators work fine. */ 1589 radio signal strength indicators work fine. */
1671 .has_radio = 1, 1590 .has_radio = 1,
@@ -1683,26 +1602,24 @@ struct tvcard bttv_tvcards[] = {
1683 /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ 1602 /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */
1684 .name = "DSP Design TCVIDEO", 1603 .name = "DSP Design TCVIDEO",
1685 .video_inputs = 4, 1604 .video_inputs = 4,
1686 .svhs = UNSET, 1605 .svhs = NO_SVHS,
1687 .muxsel = { 2, 3, 1, 0 }, 1606 .muxsel = { 2, 3, 1, 0 },
1688 .pll = PLL_28, 1607 .pll = PLL_28,
1689 .tuner_type = UNSET, 1608 .tuner_type = UNSET,
1690 .tuner_addr = ADDR_UNSET, 1609 .tuner_addr = ADDR_UNSET,
1691 .radio_addr = ADDR_UNSET,
1692 }, 1610 },
1693 1611
1694 /* ---- card 0x50 ---------------------------------- */ 1612 /* ---- card 0x50 ---------------------------------- */
1695 [BTTV_BOARD_HAUPPAUGEPVR] = { 1613 [BTTV_BOARD_HAUPPAUGEPVR] = {
1696 .name = "Hauppauge WinTV PVR", 1614 .name = "Hauppauge WinTV PVR",
1697 .video_inputs = 4, 1615 .video_inputs = 4,
1698 .audio_inputs = 1, 1616 /* .audio_inputs= 1, */
1699 .svhs = 2, 1617 .svhs = 2,
1700 .muxsel = { 2, 0, 1, 1 }, 1618 .muxsel = { 2, 0, 1, 1 },
1701 .needs_tvaudio = 1, 1619 .needs_tvaudio = 1,
1702 .pll = PLL_28, 1620 .pll = PLL_28,
1703 .tuner_type = UNSET, 1621 .tuner_type = UNSET,
1704 .tuner_addr = ADDR_UNSET, 1622 .tuner_addr = ADDR_UNSET,
1705 .radio_addr = ADDR_UNSET,
1706 1623
1707 .gpiomask = 7, 1624 .gpiomask = 7,
1708 .gpiomux = {7}, 1625 .gpiomux = {7},
@@ -1710,7 +1627,7 @@ struct tvcard bttv_tvcards[] = {
1710 [BTTV_BOARD_GVBCTV5PCI] = { 1627 [BTTV_BOARD_GVBCTV5PCI] = {
1711 .name = "IODATA GV-BCTV5/PCI", 1628 .name = "IODATA GV-BCTV5/PCI",
1712 .video_inputs = 3, 1629 .video_inputs = 3,
1713 .audio_inputs = 1, 1630 /* .audio_inputs= 1, */
1714 .svhs = 2, 1631 .svhs = 2,
1715 .gpiomask = 0x0f0f80, 1632 .gpiomask = 0x0f0f80,
1716 .muxsel = {2, 3, 1, 0 }, 1633 .muxsel = {2, 3, 1, 0 },
@@ -1720,20 +1637,18 @@ struct tvcard bttv_tvcards[] = {
1720 .pll = PLL_28, 1637 .pll = PLL_28,
1721 .tuner_type = TUNER_PHILIPS_NTSC_M, 1638 .tuner_type = TUNER_PHILIPS_NTSC_M,
1722 .tuner_addr = ADDR_UNSET, 1639 .tuner_addr = ADDR_UNSET,
1723 .radio_addr = ADDR_UNSET,
1724 .audio_mode_gpio= gvbctv5pci_audio, 1640 .audio_mode_gpio= gvbctv5pci_audio,
1725 .has_radio = 1, 1641 .has_radio = 1,
1726 }, 1642 },
1727 [BTTV_BOARD_OSPREY1x0] = { 1643 [BTTV_BOARD_OSPREY1x0] = {
1728 .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ 1644 .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */
1729 .video_inputs = 4, /* id-inputs-clock */ 1645 .video_inputs = 4, /* id-inputs-clock */
1730 .audio_inputs = 0, 1646 /* .audio_inputs= 0, */
1731 .svhs = 3, 1647 .svhs = 3,
1732 .muxsel = { 3, 2, 0, 1 }, 1648 .muxsel = { 3, 2, 0, 1 },
1733 .pll = PLL_28, 1649 .pll = PLL_28,
1734 .tuner_type = TUNER_ABSENT, 1650 .tuner_type = TUNER_ABSENT,
1735 .tuner_addr = ADDR_UNSET, 1651 .tuner_addr = ADDR_UNSET,
1736 .radio_addr = ADDR_UNSET,
1737 .no_msp34xx = 1, 1652 .no_msp34xx = 1,
1738 .no_tda9875 = 1, 1653 .no_tda9875 = 1,
1739 .no_tda7432 = 1, 1654 .no_tda7432 = 1,
@@ -1741,13 +1656,12 @@ struct tvcard bttv_tvcards[] = {
1741 [BTTV_BOARD_OSPREY1x0_848] = { 1656 [BTTV_BOARD_OSPREY1x0_848] = {
1742 .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ 1657 .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */
1743 .video_inputs = 3, 1658 .video_inputs = 3,
1744 .audio_inputs = 0, 1659 /* .audio_inputs= 0, */
1745 .svhs = 2, 1660 .svhs = 2,
1746 .muxsel = { 2, 3, 1 }, 1661 .muxsel = { 2, 3, 1 },
1747 .pll = PLL_28, 1662 .pll = PLL_28,
1748 .tuner_type = TUNER_ABSENT, 1663 .tuner_type = TUNER_ABSENT,
1749 .tuner_addr = ADDR_UNSET, 1664 .tuner_addr = ADDR_UNSET,
1750 .radio_addr = ADDR_UNSET,
1751 .no_msp34xx = 1, 1665 .no_msp34xx = 1,
1752 .no_tda9875 = 1, 1666 .no_tda9875 = 1,
1753 .no_tda7432 = 1, 1667 .no_tda7432 = 1,
@@ -1757,13 +1671,12 @@ struct tvcard bttv_tvcards[] = {
1757 [BTTV_BOARD_OSPREY101_848] = { 1671 [BTTV_BOARD_OSPREY101_848] = {
1758 .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ 1672 .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */
1759 .video_inputs = 2, 1673 .video_inputs = 2,
1760 .audio_inputs = 0, 1674 /* .audio_inputs= 0, */
1761 .svhs = 1, 1675 .svhs = 1,
1762 .muxsel = { 3, 1 }, 1676 .muxsel = { 3, 1 },
1763 .pll = PLL_28, 1677 .pll = PLL_28,
1764 .tuner_type = TUNER_ABSENT, 1678 .tuner_type = TUNER_ABSENT,
1765 .tuner_addr = ADDR_UNSET, 1679 .tuner_addr = ADDR_UNSET,
1766 .radio_addr = ADDR_UNSET,
1767 .no_msp34xx = 1, 1680 .no_msp34xx = 1,
1768 .no_tda9875 = 1, 1681 .no_tda9875 = 1,
1769 .no_tda7432 = 1, 1682 .no_tda7432 = 1,
@@ -1771,13 +1684,12 @@ struct tvcard bttv_tvcards[] = {
1771 [BTTV_BOARD_OSPREY1x1] = { 1684 [BTTV_BOARD_OSPREY1x1] = {
1772 .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ 1685 .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */
1773 .video_inputs = 1, 1686 .video_inputs = 1,
1774 .audio_inputs = 0, 1687 /* .audio_inputs= 0, */
1775 .svhs = UNSET, 1688 .svhs = NO_SVHS,
1776 .muxsel = { 0 }, 1689 .muxsel = { 0 },
1777 .pll = PLL_28, 1690 .pll = PLL_28,
1778 .tuner_type = TUNER_ABSENT, 1691 .tuner_type = TUNER_ABSENT,
1779 .tuner_addr = ADDR_UNSET, 1692 .tuner_addr = ADDR_UNSET,
1780 .radio_addr = ADDR_UNSET,
1781 .no_msp34xx = 1, 1693 .no_msp34xx = 1,
1782 .no_tda9875 = 1, 1694 .no_tda9875 = 1,
1783 .no_tda7432 = 1, 1695 .no_tda7432 = 1,
@@ -1785,13 +1697,12 @@ struct tvcard bttv_tvcards[] = {
1785 [BTTV_BOARD_OSPREY1x1_SVID] = { 1697 [BTTV_BOARD_OSPREY1x1_SVID] = {
1786 .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ 1698 .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */
1787 .video_inputs = 2, 1699 .video_inputs = 2,
1788 .audio_inputs = 0, 1700 /* .audio_inputs= 0, */
1789 .svhs = 1, 1701 .svhs = 1,
1790 .muxsel = { 0, 1 }, 1702 .muxsel = { 0, 1 },
1791 .pll = PLL_28, 1703 .pll = PLL_28,
1792 .tuner_type = TUNER_ABSENT, 1704 .tuner_type = TUNER_ABSENT,
1793 .tuner_addr = ADDR_UNSET, 1705 .tuner_addr = ADDR_UNSET,
1794 .radio_addr = ADDR_UNSET,
1795 .no_msp34xx = 1, 1706 .no_msp34xx = 1,
1796 .no_tda9875 = 1, 1707 .no_tda9875 = 1,
1797 .no_tda7432 = 1, 1708 .no_tda7432 = 1,
@@ -1799,13 +1710,12 @@ struct tvcard bttv_tvcards[] = {
1799 [BTTV_BOARD_OSPREY2xx] = { 1710 [BTTV_BOARD_OSPREY2xx] = {
1800 .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ 1711 .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */
1801 .video_inputs = 1, 1712 .video_inputs = 1,
1802 .audio_inputs = 1, 1713 /* .audio_inputs= 1, */
1803 .svhs = UNSET, 1714 .svhs = NO_SVHS,
1804 .muxsel = { 0 }, 1715 .muxsel = { 0 },
1805 .pll = PLL_28, 1716 .pll = PLL_28,
1806 .tuner_type = TUNER_ABSENT, 1717 .tuner_type = TUNER_ABSENT,
1807 .tuner_addr = ADDR_UNSET, 1718 .tuner_addr = ADDR_UNSET,
1808 .radio_addr = ADDR_UNSET,
1809 .no_msp34xx = 1, 1719 .no_msp34xx = 1,
1810 .no_tda9875 = 1, 1720 .no_tda9875 = 1,
1811 .no_tda7432 = 1, 1721 .no_tda7432 = 1,
@@ -1815,13 +1725,12 @@ struct tvcard bttv_tvcards[] = {
1815 [BTTV_BOARD_OSPREY2x0_SVID] = { 1725 [BTTV_BOARD_OSPREY2x0_SVID] = {
1816 .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ 1726 .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */
1817 .video_inputs = 2, 1727 .video_inputs = 2,
1818 .audio_inputs = 1, 1728 /* .audio_inputs= 1, */
1819 .svhs = 1, 1729 .svhs = 1,
1820 .muxsel = { 0, 1 }, 1730 .muxsel = { 0, 1 },
1821 .pll = PLL_28, 1731 .pll = PLL_28,
1822 .tuner_type = TUNER_ABSENT, 1732 .tuner_type = TUNER_ABSENT,
1823 .tuner_addr = ADDR_UNSET, 1733 .tuner_addr = ADDR_UNSET,
1824 .radio_addr = ADDR_UNSET,
1825 .no_msp34xx = 1, 1734 .no_msp34xx = 1,
1826 .no_tda9875 = 1, 1735 .no_tda9875 = 1,
1827 .no_tda7432 = 1, 1736 .no_tda7432 = 1,
@@ -1829,13 +1738,12 @@ struct tvcard bttv_tvcards[] = {
1829 [BTTV_BOARD_OSPREY2x0] = { 1738 [BTTV_BOARD_OSPREY2x0] = {
1830 .name = "Osprey 210/220/230", /* 0x1(A|B)-04C0-C1 */ 1739 .name = "Osprey 210/220/230", /* 0x1(A|B)-04C0-C1 */
1831 .video_inputs = 2, 1740 .video_inputs = 2,
1832 .audio_inputs = 1, 1741 /* .audio_inputs= 1, */
1833 .svhs = 1, 1742 .svhs = 1,
1834 .muxsel = { 2, 3 }, 1743 .muxsel = { 2, 3 },
1835 .pll = PLL_28, 1744 .pll = PLL_28,
1836 .tuner_type = TUNER_ABSENT, 1745 .tuner_type = TUNER_ABSENT,
1837 .tuner_addr = ADDR_UNSET, 1746 .tuner_addr = ADDR_UNSET,
1838 .radio_addr = ADDR_UNSET,
1839 .no_msp34xx = 1, 1747 .no_msp34xx = 1,
1840 .no_tda9875 = 1, 1748 .no_tda9875 = 1,
1841 .no_tda7432 = 1, 1749 .no_tda7432 = 1,
@@ -1843,13 +1751,12 @@ struct tvcard bttv_tvcards[] = {
1843 [BTTV_BOARD_OSPREY500] = { 1751 [BTTV_BOARD_OSPREY500] = {
1844 .name = "Osprey 500", /* 500 */ 1752 .name = "Osprey 500", /* 500 */
1845 .video_inputs = 2, 1753 .video_inputs = 2,
1846 .audio_inputs = 1, 1754 /* .audio_inputs= 1, */
1847 .svhs = 1, 1755 .svhs = 1,
1848 .muxsel = { 2, 3 }, 1756 .muxsel = { 2, 3 },
1849 .pll = PLL_28, 1757 .pll = PLL_28,
1850 .tuner_type = TUNER_ABSENT, 1758 .tuner_type = TUNER_ABSENT,
1851 .tuner_addr = ADDR_UNSET, 1759 .tuner_addr = ADDR_UNSET,
1852 .radio_addr = ADDR_UNSET,
1853 .no_msp34xx = 1, 1760 .no_msp34xx = 1,
1854 .no_tda9875 = 1, 1761 .no_tda9875 = 1,
1855 .no_tda7432 = 1, 1762 .no_tda7432 = 1,
@@ -1857,11 +1764,10 @@ struct tvcard bttv_tvcards[] = {
1857 [BTTV_BOARD_OSPREY540] = { 1764 [BTTV_BOARD_OSPREY540] = {
1858 .name = "Osprey 540", /* 540 */ 1765 .name = "Osprey 540", /* 540 */
1859 .video_inputs = 4, 1766 .video_inputs = 4,
1860 .audio_inputs = 1, 1767 /* .audio_inputs= 1, */
1861 .pll = PLL_28, 1768 .pll = PLL_28,
1862 .tuner_type = TUNER_ABSENT, 1769 .tuner_type = TUNER_ABSENT,
1863 .tuner_addr = ADDR_UNSET, 1770 .tuner_addr = ADDR_UNSET,
1864 .radio_addr = ADDR_UNSET,
1865 .no_msp34xx = 1, 1771 .no_msp34xx = 1,
1866 .no_tda9875 = 1, 1772 .no_tda9875 = 1,
1867 .no_tda7432 = 1, 1773 .no_tda7432 = 1,
@@ -1871,13 +1777,12 @@ struct tvcard bttv_tvcards[] = {
1871 [BTTV_BOARD_OSPREY2000] = { 1777 [BTTV_BOARD_OSPREY2000] = {
1872 .name = "Osprey 2000", /* 2000 */ 1778 .name = "Osprey 2000", /* 2000 */
1873 .video_inputs = 2, 1779 .video_inputs = 2,
1874 .audio_inputs = 1, 1780 /* .audio_inputs= 1, */
1875 .svhs = 1, 1781 .svhs = 1,
1876 .muxsel = { 2, 3 }, 1782 .muxsel = { 2, 3 },
1877 .pll = PLL_28, 1783 .pll = PLL_28,
1878 .tuner_type = TUNER_ABSENT, 1784 .tuner_type = TUNER_ABSENT,
1879 .tuner_addr = ADDR_UNSET, 1785 .tuner_addr = ADDR_UNSET,
1880 .radio_addr = ADDR_UNSET,
1881 .no_msp34xx = 1, 1786 .no_msp34xx = 1,
1882 .no_tda9875 = 1, 1787 .no_tda9875 = 1,
1883 .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */ 1788 .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */
@@ -1886,11 +1791,10 @@ struct tvcard bttv_tvcards[] = {
1886 /* M G Berberich <berberic@forwiss.uni-passau.de> */ 1791 /* M G Berberich <berberic@forwiss.uni-passau.de> */
1887 .name = "IDS Eagle", 1792 .name = "IDS Eagle",
1888 .video_inputs = 4, 1793 .video_inputs = 4,
1889 .audio_inputs = 0, 1794 /* .audio_inputs= 0, */
1890 .tuner_type = TUNER_ABSENT, 1795 .tuner_type = TUNER_ABSENT,
1891 .tuner_addr = ADDR_UNSET, 1796 .tuner_addr = ADDR_UNSET,
1892 .radio_addr = ADDR_UNSET, 1797 .svhs = NO_SVHS,
1893 .svhs = UNSET,
1894 .gpiomask = 0, 1798 .gpiomask = 0,
1895 .muxsel = { 0, 1, 2, 3 }, 1799 .muxsel = { 0, 1, 2, 3 },
1896 .muxsel_hook = eagle_muxsel, 1800 .muxsel_hook = eagle_muxsel,
@@ -1901,11 +1805,10 @@ struct tvcard bttv_tvcards[] = {
1901 [BTTV_BOARD_PINNACLESAT] = { 1805 [BTTV_BOARD_PINNACLESAT] = {
1902 .name = "Pinnacle PCTV Sat", 1806 .name = "Pinnacle PCTV Sat",
1903 .video_inputs = 2, 1807 .video_inputs = 2,
1904 .audio_inputs = 0, 1808 /* .audio_inputs= 0, */
1905 .svhs = 1, 1809 .svhs = 1,
1906 .tuner_type = TUNER_ABSENT, 1810 .tuner_type = TUNER_ABSENT,
1907 .tuner_addr = ADDR_UNSET, 1811 .tuner_addr = ADDR_UNSET,
1908 .radio_addr = ADDR_UNSET,
1909 .no_msp34xx = 1, 1812 .no_msp34xx = 1,
1910 .no_tda9875 = 1, 1813 .no_tda9875 = 1,
1911 .no_tda7432 = 1, 1814 .no_tda7432 = 1,
@@ -1917,7 +1820,7 @@ struct tvcard bttv_tvcards[] = {
1917 [BTTV_BOARD_FORMAC_PROTV] = { 1820 [BTTV_BOARD_FORMAC_PROTV] = {
1918 .name = "Formac ProTV II (bt878)", 1821 .name = "Formac ProTV II (bt878)",
1919 .video_inputs = 4, 1822 .video_inputs = 4,
1920 .audio_inputs = 1, 1823 /* .audio_inputs= 1, */
1921 .svhs = 3, 1824 .svhs = 3,
1922 .gpiomask = 2, 1825 .gpiomask = 2,
1923 /* TV, Comp1, Composite over SVID con, SVID */ 1826 /* TV, Comp1, Composite over SVID con, SVID */
@@ -1927,7 +1830,6 @@ struct tvcard bttv_tvcards[] = {
1927 .has_radio = 1, 1830 .has_radio = 1,
1928 .tuner_type = TUNER_PHILIPS_PAL, 1831 .tuner_type = TUNER_PHILIPS_PAL,
1929 .tuner_addr = ADDR_UNSET, 1832 .tuner_addr = ADDR_UNSET,
1930 .radio_addr = ADDR_UNSET,
1931 /* sound routing: 1833 /* sound routing:
1932 GPIO=0x00,0x01,0x03: mute (?) 1834 GPIO=0x00,0x01,0x03: mute (?)
1933 0x02: both TV and radio (tuner: FM1216/I) 1835 0x02: both TV and radio (tuner: FM1216/I)
@@ -1941,8 +1843,8 @@ struct tvcard bttv_tvcards[] = {
1941 [BTTV_BOARD_MACHTV] = { 1843 [BTTV_BOARD_MACHTV] = {
1942 .name = "MachTV", 1844 .name = "MachTV",
1943 .video_inputs = 3, 1845 .video_inputs = 3,
1944 .audio_inputs = 1, 1846 /* .audio_inputs= 1, */
1945 .svhs = UNSET, 1847 .svhs = NO_SVHS,
1946 .gpiomask = 7, 1848 .gpiomask = 7,
1947 .muxsel = { 2, 3, 1, 1}, 1849 .muxsel = { 2, 3, 1, 1},
1948 .gpiomux = { 0, 1, 2, 3}, 1850 .gpiomux = { 0, 1, 2, 3},
@@ -1950,13 +1852,12 @@ struct tvcard bttv_tvcards[] = {
1950 .needs_tvaudio = 1, 1852 .needs_tvaudio = 1,
1951 .tuner_type = TUNER_PHILIPS_PAL, 1853 .tuner_type = TUNER_PHILIPS_PAL,
1952 .tuner_addr = ADDR_UNSET, 1854 .tuner_addr = ADDR_UNSET,
1953 .radio_addr = ADDR_UNSET,
1954 .pll = PLL_28, 1855 .pll = PLL_28,
1955 }, 1856 },
1956 [BTTV_BOARD_EURESYS_PICOLO] = { 1857 [BTTV_BOARD_EURESYS_PICOLO] = {
1957 .name = "Euresys Picolo", 1858 .name = "Euresys Picolo",
1958 .video_inputs = 3, 1859 .video_inputs = 3,
1959 .audio_inputs = 0, 1860 /* .audio_inputs= 0, */
1960 .svhs = 2, 1861 .svhs = 2,
1961 .gpiomask = 0, 1862 .gpiomask = 0,
1962 .no_msp34xx = 1, 1863 .no_msp34xx = 1,
@@ -1966,14 +1867,13 @@ struct tvcard bttv_tvcards[] = {
1966 .pll = PLL_28, 1867 .pll = PLL_28,
1967 .tuner_type = TUNER_ABSENT, 1868 .tuner_type = TUNER_ABSENT,
1968 .tuner_addr = ADDR_UNSET, 1869 .tuner_addr = ADDR_UNSET,
1969 .radio_addr = ADDR_UNSET,
1970 }, 1870 },
1971 [BTTV_BOARD_PV150] = { 1871 [BTTV_BOARD_PV150] = {
1972 /* Luc Van Hoeylandt <luc@e-magic.be> */ 1872 /* Luc Van Hoeylandt <luc@e-magic.be> */
1973 .name = "ProVideo PV150", /* 0x4f */ 1873 .name = "ProVideo PV150", /* 0x4f */
1974 .video_inputs = 2, 1874 .video_inputs = 2,
1975 .audio_inputs = 0, 1875 /* .audio_inputs= 0, */
1976 .svhs = UNSET, 1876 .svhs = NO_SVHS,
1977 .gpiomask = 0, 1877 .gpiomask = 0,
1978 .muxsel = { 2, 3 }, 1878 .muxsel = { 2, 3 },
1979 .gpiomux = { 0 }, 1879 .gpiomux = { 0 },
@@ -1982,14 +1882,13 @@ struct tvcard bttv_tvcards[] = {
1982 .pll = PLL_28, 1882 .pll = PLL_28,
1983 .tuner_type = TUNER_ABSENT, 1883 .tuner_type = TUNER_ABSENT,
1984 .tuner_addr = ADDR_UNSET, 1884 .tuner_addr = ADDR_UNSET,
1985 .radio_addr = ADDR_UNSET,
1986 }, 1885 },
1987 [BTTV_BOARD_AD_TVK503] = { 1886 [BTTV_BOARD_AD_TVK503] = {
1988 /* Hiroshi Takekawa <sian@big.or.jp> */ 1887 /* Hiroshi Takekawa <sian@big.or.jp> */
1989 /* This card lacks subsystem ID */ 1888 /* This card lacks subsystem ID */
1990 .name = "AD-TVK503", /* 0x63 */ 1889 .name = "AD-TVK503", /* 0x63 */
1991 .video_inputs = 4, 1890 .video_inputs = 4,
1992 .audio_inputs = 1, 1891 /* .audio_inputs= 1, */
1993 .svhs = 2, 1892 .svhs = 2,
1994 .gpiomask = 0x001e8007, 1893 .gpiomask = 0x001e8007,
1995 .muxsel = { 2, 3, 1, 0 }, 1894 .muxsel = { 2, 3, 1, 0 },
@@ -2001,7 +1900,6 @@ struct tvcard bttv_tvcards[] = {
2001 .pll = PLL_28, 1900 .pll = PLL_28,
2002 .tuner_type = TUNER_PHILIPS_NTSC, 1901 .tuner_type = TUNER_PHILIPS_NTSC,
2003 .tuner_addr = ADDR_UNSET, 1902 .tuner_addr = ADDR_UNSET,
2004 .radio_addr = ADDR_UNSET,
2005 .audio_mode_gpio= adtvk503_audio, 1903 .audio_mode_gpio= adtvk503_audio,
2006 }, 1904 },
2007 1905
@@ -2009,7 +1907,7 @@ struct tvcard bttv_tvcards[] = {
2009 [BTTV_BOARD_HERCULES_SM_TV] = { 1907 [BTTV_BOARD_HERCULES_SM_TV] = {
2010 .name = "Hercules Smart TV Stereo", 1908 .name = "Hercules Smart TV Stereo",
2011 .video_inputs = 4, 1909 .video_inputs = 4,
2012 .audio_inputs = 1, 1910 /* .audio_inputs= 1, */
2013 .svhs = 2, 1911 .svhs = 2,
2014 .gpiomask = 0x00, 1912 .gpiomask = 0x00,
2015 .muxsel = { 2, 3, 1, 1 }, 1913 .muxsel = { 2, 3, 1, 1 },
@@ -2018,7 +1916,6 @@ struct tvcard bttv_tvcards[] = {
2018 .pll = PLL_28, 1916 .pll = PLL_28,
2019 .tuner_type = TUNER_PHILIPS_PAL, 1917 .tuner_type = TUNER_PHILIPS_PAL,
2020 .tuner_addr = ADDR_UNSET, 1918 .tuner_addr = ADDR_UNSET,
2021 .radio_addr = ADDR_UNSET,
2022 /* Notes: 1919 /* Notes:
2023 - card lacks subsystem ID 1920 - card lacks subsystem ID
2024 - stereo variant w/ daughter board with tda9874a @0xb0 1921 - stereo variant w/ daughter board with tda9874a @0xb0
@@ -2032,7 +1929,7 @@ struct tvcard bttv_tvcards[] = {
2032 [BTTV_BOARD_PACETV] = { 1929 [BTTV_BOARD_PACETV] = {
2033 .name = "Pace TV & Radio Card", 1930 .name = "Pace TV & Radio Card",
2034 .video_inputs = 4, 1931 .video_inputs = 4,
2035 .audio_inputs = 1, 1932 /* .audio_inputs= 1, */
2036 .svhs = 2, 1933 .svhs = 2,
2037 .muxsel = { 2, 3, 1, 1 }, /* Tuner, CVid, SVid, CVid over SVid connector */ 1934 .muxsel = { 2, 3, 1, 1 }, /* Tuner, CVid, SVid, CVid over SVid connector */
2038 .gpiomask = 0, 1935 .gpiomask = 0,
@@ -2040,7 +1937,6 @@ struct tvcard bttv_tvcards[] = {
2040 .no_tda7432 = 1, 1937 .no_tda7432 = 1,
2041 .tuner_type = TUNER_PHILIPS_PAL_I, 1938 .tuner_type = TUNER_PHILIPS_PAL_I,
2042 .tuner_addr = ADDR_UNSET, 1939 .tuner_addr = ADDR_UNSET,
2043 .radio_addr = ADDR_UNSET,
2044 .has_radio = 1, 1940 .has_radio = 1,
2045 .pll = PLL_28, 1941 .pll = PLL_28,
2046 /* Bt878, Bt832, FI1246 tuner; no pci subsystem id 1942 /* Bt878, Bt832, FI1246 tuner; no pci subsystem id
@@ -2054,11 +1950,10 @@ struct tvcard bttv_tvcards[] = {
2054 /* Chris Willing <chris@vislab.usyd.edu.au> */ 1950 /* Chris Willing <chris@vislab.usyd.edu.au> */
2055 .name = "IVC-200", 1951 .name = "IVC-200",
2056 .video_inputs = 1, 1952 .video_inputs = 1,
2057 .audio_inputs = 0, 1953 /* .audio_inputs= 0, */
2058 .tuner_type = TUNER_ABSENT, 1954 .tuner_type = TUNER_ABSENT,
2059 .tuner_addr = ADDR_UNSET, 1955 .tuner_addr = ADDR_UNSET,
2060 .radio_addr = ADDR_UNSET, 1956 .svhs = NO_SVHS,
2061 .svhs = UNSET,
2062 .gpiomask = 0xdf, 1957 .gpiomask = 0xdf,
2063 .muxsel = { 2 }, 1958 .muxsel = { 2 },
2064 .pll = PLL_28, 1959 .pll = PLL_28,
@@ -2066,11 +1961,10 @@ struct tvcard bttv_tvcards[] = {
2066 [BTTV_BOARD_IVCE8784] = { 1961 [BTTV_BOARD_IVCE8784] = {
2067 .name = "IVCE-8784", 1962 .name = "IVCE-8784",
2068 .video_inputs = 1, 1963 .video_inputs = 1,
2069 .audio_inputs = 0, 1964 /* .audio_inputs= 0, */
2070 .tuner_type = TUNER_ABSENT, 1965 .tuner_type = TUNER_ABSENT,
2071 .tuner_addr = ADDR_UNSET, 1966 .tuner_addr = ADDR_UNSET,
2072 .radio_addr = ADDR_UNSET, 1967 .svhs = NO_SVHS,
2073 .svhs = UNSET,
2074 .gpiomask = 0xdf, 1968 .gpiomask = 0xdf,
2075 .muxsel = { 2 }, 1969 .muxsel = { 2 },
2076 .pll = PLL_28, 1970 .pll = PLL_28,
@@ -2078,11 +1972,10 @@ struct tvcard bttv_tvcards[] = {
2078 [BTTV_BOARD_XGUARD] = { 1972 [BTTV_BOARD_XGUARD] = {
2079 .name = "Grand X-Guard / Trust 814PCI", 1973 .name = "Grand X-Guard / Trust 814PCI",
2080 .video_inputs = 16, 1974 .video_inputs = 16,
2081 .audio_inputs = 0, 1975 /* .audio_inputs= 0, */
2082 .svhs = UNSET, 1976 .svhs = NO_SVHS,
2083 .tuner_type = TUNER_ABSENT, 1977 .tuner_type = TUNER_ABSENT,
2084 .tuner_addr = ADDR_UNSET, 1978 .tuner_addr = ADDR_UNSET,
2085 .radio_addr = ADDR_UNSET,
2086 .gpiomask2 = 0xff, 1979 .gpiomask2 = 0xff,
2087 .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 }, 1980 .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 },
2088 .muxsel_hook = xguard_muxsel, 1981 .muxsel_hook = xguard_muxsel,
@@ -2096,7 +1989,7 @@ struct tvcard bttv_tvcards[] = {
2096 [BTTV_BOARD_NEBULA_DIGITV] = { 1989 [BTTV_BOARD_NEBULA_DIGITV] = {
2097 .name = "Nebula Electronics DigiTV", 1990 .name = "Nebula Electronics DigiTV",
2098 .video_inputs = 1, 1991 .video_inputs = 1,
2099 .svhs = UNSET, 1992 .svhs = NO_SVHS,
2100 .muxsel = { 2, 3, 1, 0 }, 1993 .muxsel = { 2, 3, 1, 0 },
2101 .no_msp34xx = 1, 1994 .no_msp34xx = 1,
2102 .no_tda9875 = 1, 1995 .no_tda9875 = 1,
@@ -2104,7 +1997,6 @@ struct tvcard bttv_tvcards[] = {
2104 .pll = PLL_28, 1997 .pll = PLL_28,
2105 .tuner_type = TUNER_ABSENT, 1998 .tuner_type = TUNER_ABSENT,
2106 .tuner_addr = ADDR_UNSET, 1999 .tuner_addr = ADDR_UNSET,
2107 .radio_addr = ADDR_UNSET,
2108 .has_dvb = 1, 2000 .has_dvb = 1,
2109 .has_remote = 1, 2001 .has_remote = 1,
2110 .gpiomask = 0x1b, 2002 .gpiomask = 0x1b,
@@ -2114,8 +2006,8 @@ struct tvcard bttv_tvcards[] = {
2114 /* Jorge Boncompte - DTI2 <jorge@dti2.net> */ 2006 /* Jorge Boncompte - DTI2 <jorge@dti2.net> */
2115 .name = "ProVideo PV143", 2007 .name = "ProVideo PV143",
2116 .video_inputs = 4, 2008 .video_inputs = 4,
2117 .audio_inputs = 0, 2009 /* .audio_inputs= 0, */
2118 .svhs = UNSET, 2010 .svhs = NO_SVHS,
2119 .gpiomask = 0, 2011 .gpiomask = 0,
2120 .muxsel = { 2, 3, 1, 0 }, 2012 .muxsel = { 2, 3, 1, 0 },
2121 .gpiomux = { 0 }, 2013 .gpiomux = { 0 },
@@ -2124,13 +2016,12 @@ struct tvcard bttv_tvcards[] = {
2124 .pll = PLL_28, 2016 .pll = PLL_28,
2125 .tuner_type = TUNER_ABSENT, 2017 .tuner_type = TUNER_ABSENT,
2126 .tuner_addr = ADDR_UNSET, 2018 .tuner_addr = ADDR_UNSET,
2127 .radio_addr = ADDR_UNSET,
2128 }, 2019 },
2129 [BTTV_BOARD_VD009X1_VD011_MINIDIN] = { 2020 [BTTV_BOARD_VD009X1_VD011_MINIDIN] = {
2130 /* M.Klahr@phytec.de */ 2021 /* M.Klahr@phytec.de */
2131 .name = "PHYTEC VD-009-X1 VD-011 MiniDIN (bt878)", 2022 .name = "PHYTEC VD-009-X1 VD-011 MiniDIN (bt878)",
2132 .video_inputs = 4, 2023 .video_inputs = 4,
2133 .audio_inputs = 0, 2024 /* .audio_inputs= 0, */
2134 .svhs = 3, 2025 .svhs = 3,
2135 .gpiomask = 0x00, 2026 .gpiomask = 0x00,
2136 .muxsel = { 2, 3, 1, 0 }, 2027 .muxsel = { 2, 3, 1, 0 },
@@ -2139,12 +2030,11 @@ struct tvcard bttv_tvcards[] = {
2139 .pll = PLL_28, 2030 .pll = PLL_28,
2140 .tuner_type = TUNER_ABSENT, 2031 .tuner_type = TUNER_ABSENT,
2141 .tuner_addr = ADDR_UNSET, 2032 .tuner_addr = ADDR_UNSET,
2142 .radio_addr = ADDR_UNSET,
2143 }, 2033 },
2144 [BTTV_BOARD_VD009X1_VD011_COMBI] = { 2034 [BTTV_BOARD_VD009X1_VD011_COMBI] = {
2145 .name = "PHYTEC VD-009-X1 VD-011 Combi (bt878)", 2035 .name = "PHYTEC VD-009-X1 VD-011 Combi (bt878)",
2146 .video_inputs = 4, 2036 .video_inputs = 4,
2147 .audio_inputs = 0, 2037 /* .audio_inputs= 0, */
2148 .svhs = 3, 2038 .svhs = 3,
2149 .gpiomask = 0x00, 2039 .gpiomask = 0x00,
2150 .muxsel = { 2, 3, 1, 1 }, 2040 .muxsel = { 2, 3, 1, 1 },
@@ -2153,14 +2043,13 @@ struct tvcard bttv_tvcards[] = {
2153 .pll = PLL_28, 2043 .pll = PLL_28,
2154 .tuner_type = TUNER_ABSENT, 2044 .tuner_type = TUNER_ABSENT,
2155 .tuner_addr = ADDR_UNSET, 2045 .tuner_addr = ADDR_UNSET,
2156 .radio_addr = ADDR_UNSET,
2157 }, 2046 },
2158 2047
2159 /* ---- card 0x6c ---------------------------------- */ 2048 /* ---- card 0x6c ---------------------------------- */
2160 [BTTV_BOARD_VD009_MINIDIN] = { 2049 [BTTV_BOARD_VD009_MINIDIN] = {
2161 .name = "PHYTEC VD-009 MiniDIN (bt878)", 2050 .name = "PHYTEC VD-009 MiniDIN (bt878)",
2162 .video_inputs = 10, 2051 .video_inputs = 10,
2163 .audio_inputs = 0, 2052 /* .audio_inputs= 0, */
2164 .svhs = 9, 2053 .svhs = 9,
2165 .gpiomask = 0x00, 2054 .gpiomask = 0x00,
2166 .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio 2055 .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio
@@ -2172,12 +2061,11 @@ struct tvcard bttv_tvcards[] = {
2172 .pll = PLL_28, 2061 .pll = PLL_28,
2173 .tuner_type = TUNER_ABSENT, 2062 .tuner_type = TUNER_ABSENT,
2174 .tuner_addr = ADDR_UNSET, 2063 .tuner_addr = ADDR_UNSET,
2175 .radio_addr = ADDR_UNSET,
2176 }, 2064 },
2177 [BTTV_BOARD_VD009_COMBI] = { 2065 [BTTV_BOARD_VD009_COMBI] = {
2178 .name = "PHYTEC VD-009 Combi (bt878)", 2066 .name = "PHYTEC VD-009 Combi (bt878)",
2179 .video_inputs = 10, 2067 .video_inputs = 10,
2180 .audio_inputs = 0, 2068 /* .audio_inputs= 0, */
2181 .svhs = 9, 2069 .svhs = 9,
2182 .gpiomask = 0x00, 2070 .gpiomask = 0x00,
2183 .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio 2071 .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio
@@ -2189,16 +2077,14 @@ struct tvcard bttv_tvcards[] = {
2189 .pll = PLL_28, 2077 .pll = PLL_28,
2190 .tuner_type = TUNER_ABSENT, 2078 .tuner_type = TUNER_ABSENT,
2191 .tuner_addr = ADDR_UNSET, 2079 .tuner_addr = ADDR_UNSET,
2192 .radio_addr = ADDR_UNSET,
2193 }, 2080 },
2194 [BTTV_BOARD_IVC100] = { 2081 [BTTV_BOARD_IVC100] = {
2195 .name = "IVC-100", 2082 .name = "IVC-100",
2196 .video_inputs = 4, 2083 .video_inputs = 4,
2197 .audio_inputs = 0, 2084 /* .audio_inputs= 0, */
2198 .tuner_type = TUNER_ABSENT, 2085 .tuner_type = TUNER_ABSENT,
2199 .tuner_addr = ADDR_UNSET, 2086 .tuner_addr = ADDR_UNSET,
2200 .radio_addr = ADDR_UNSET, 2087 .svhs = NO_SVHS,
2201 .svhs = UNSET,
2202 .gpiomask = 0xdf, 2088 .gpiomask = 0xdf,
2203 .muxsel = { 2, 3, 1, 0 }, 2089 .muxsel = { 2, 3, 1, 0 },
2204 .pll = PLL_28, 2090 .pll = PLL_28,
@@ -2207,11 +2093,10 @@ struct tvcard bttv_tvcards[] = {
2207 /* IVC-120G - Alan Garfield <alan@fromorbit.com> */ 2093 /* IVC-120G - Alan Garfield <alan@fromorbit.com> */
2208 .name = "IVC-120G", 2094 .name = "IVC-120G",
2209 .video_inputs = 16, 2095 .video_inputs = 16,
2210 .audio_inputs = 0, /* card has no audio */ 2096 /* .audio_inputs= 0, */
2211 .tuner_type = TUNER_ABSENT, 2097 .tuner_type = TUNER_ABSENT,
2212 .tuner_addr = ADDR_UNSET, 2098 .tuner_addr = ADDR_UNSET,
2213 .radio_addr = ADDR_UNSET, 2099 .svhs = NO_SVHS, /* card has no svhs */
2214 .svhs = UNSET, /* card has no svhs */
2215 .needs_tvaudio = 0, 2100 .needs_tvaudio = 0,
2216 .no_msp34xx = 1, 2101 .no_msp34xx = 1,
2217 .no_tda9875 = 1, 2102 .no_tda9875 = 1,
@@ -2227,12 +2112,11 @@ struct tvcard bttv_tvcards[] = {
2227 [BTTV_BOARD_PC_HDTV] = { 2112 [BTTV_BOARD_PC_HDTV] = {
2228 .name = "pcHDTV HD-2000 TV", 2113 .name = "pcHDTV HD-2000 TV",
2229 .video_inputs = 4, 2114 .video_inputs = 4,
2230 .audio_inputs = 1, 2115 /* .audio_inputs= 1, */
2231 .svhs = 2, 2116 .svhs = 2,
2232 .muxsel = { 2, 3, 1, 0 }, 2117 .muxsel = { 2, 3, 1, 0 },
2233 .tuner_type = TUNER_PHILIPS_FCV1236D, 2118 .tuner_type = TUNER_PHILIPS_FCV1236D,
2234 .tuner_addr = ADDR_UNSET, 2119 .tuner_addr = ADDR_UNSET,
2235 .radio_addr = ADDR_UNSET,
2236 .has_dvb = 1, 2120 .has_dvb = 1,
2237 }, 2121 },
2238 [BTTV_BOARD_TWINHAN_DST] = { 2122 [BTTV_BOARD_TWINHAN_DST] = {
@@ -2242,14 +2126,13 @@ struct tvcard bttv_tvcards[] = {
2242 .no_tda7432 = 1, 2126 .no_tda7432 = 1,
2243 .tuner_type = TUNER_ABSENT, 2127 .tuner_type = TUNER_ABSENT,
2244 .tuner_addr = ADDR_UNSET, 2128 .tuner_addr = ADDR_UNSET,
2245 .radio_addr = ADDR_UNSET,
2246 .no_video = 1, 2129 .no_video = 1,
2247 .has_dvb = 1, 2130 .has_dvb = 1,
2248 }, 2131 },
2249 [BTTV_BOARD_WINFASTVC100] = { 2132 [BTTV_BOARD_WINFASTVC100] = {
2250 .name = "Winfast VC100", 2133 .name = "Winfast VC100",
2251 .video_inputs = 3, 2134 .video_inputs = 3,
2252 .audio_inputs = 0, 2135 /* .audio_inputs= 0, */
2253 .svhs = 1, 2136 .svhs = 1,
2254 .muxsel = { 3, 1, 1, 3 }, /* Vid In, SVid In, Vid over SVid in connector */ 2137 .muxsel = { 3, 1, 1, 3 }, /* Vid In, SVid In, Vid over SVid in connector */
2255 .no_msp34xx = 1, 2138 .no_msp34xx = 1,
@@ -2257,13 +2140,12 @@ struct tvcard bttv_tvcards[] = {
2257 .no_tda7432 = 1, 2140 .no_tda7432 = 1,
2258 .tuner_type = TUNER_ABSENT, 2141 .tuner_type = TUNER_ABSENT,
2259 .tuner_addr = ADDR_UNSET, 2142 .tuner_addr = ADDR_UNSET,
2260 .radio_addr = ADDR_UNSET,
2261 .pll = PLL_28, 2143 .pll = PLL_28,
2262 }, 2144 },
2263 [BTTV_BOARD_TEV560] = { 2145 [BTTV_BOARD_TEV560] = {
2264 .name = "Teppro TEV-560/InterVision IV-560", 2146 .name = "Teppro TEV-560/InterVision IV-560",
2265 .video_inputs = 3, 2147 .video_inputs = 3,
2266 .audio_inputs = 1, 2148 /* .audio_inputs= 1, */
2267 .svhs = 2, 2149 .svhs = 2,
2268 .gpiomask = 3, 2150 .gpiomask = 3,
2269 .muxsel = { 2, 3, 1, 1 }, 2151 .muxsel = { 2, 3, 1, 1 },
@@ -2271,7 +2153,6 @@ struct tvcard bttv_tvcards[] = {
2271 .needs_tvaudio = 1, 2153 .needs_tvaudio = 1,
2272 .tuner_type = TUNER_PHILIPS_PAL, 2154 .tuner_type = TUNER_PHILIPS_PAL,
2273 .tuner_addr = ADDR_UNSET, 2155 .tuner_addr = ADDR_UNSET,
2274 .radio_addr = ADDR_UNSET,
2275 .pll = PLL_35, 2156 .pll = PLL_35,
2276 }, 2157 },
2277 2158
@@ -2279,11 +2160,10 @@ struct tvcard bttv_tvcards[] = {
2279 [BTTV_BOARD_SIMUS_GVC1100] = { 2160 [BTTV_BOARD_SIMUS_GVC1100] = {
2280 .name = "SIMUS GVC1100", 2161 .name = "SIMUS GVC1100",
2281 .video_inputs = 4, 2162 .video_inputs = 4,
2282 .audio_inputs = 0, 2163 /* .audio_inputs= 0, */
2283 .svhs = UNSET, 2164 .svhs = NO_SVHS,
2284 .tuner_type = TUNER_ABSENT, 2165 .tuner_type = TUNER_ABSENT,
2285 .tuner_addr = ADDR_UNSET, 2166 .tuner_addr = ADDR_UNSET,
2286 .radio_addr = ADDR_UNSET,
2287 .pll = PLL_28, 2167 .pll = PLL_28,
2288 .muxsel = { 2, 2, 2, 2 }, 2168 .muxsel = { 2, 2, 2, 2 },
2289 .gpiomask = 0x3F, 2169 .gpiomask = 0x3F,
@@ -2301,15 +2181,14 @@ struct tvcard bttv_tvcards[] = {
2301 .pll = PLL_28, 2181 .pll = PLL_28,
2302 .tuner_type = TUNER_PHILIPS_PAL, 2182 .tuner_type = TUNER_PHILIPS_PAL,
2303 .tuner_addr = ADDR_UNSET, 2183 .tuner_addr = ADDR_UNSET,
2304 .radio_addr = ADDR_UNSET,
2305 .has_remote = 1, 2184 .has_remote = 1,
2306 }, 2185 },
2307 [BTTV_BOARD_LMLBT4] = { 2186 [BTTV_BOARD_LMLBT4] = {
2308 /* http://linuxmedialabs.com */ 2187 /* http://linuxmedialabs.com */
2309 .name = "LMLBT4", 2188 .name = "LMLBT4",
2310 .video_inputs = 4, /* IN1,IN2,IN3,IN4 */ 2189 .video_inputs = 4, /* IN1,IN2,IN3,IN4 */
2311 .audio_inputs = 0, 2190 /* .audio_inputs= 0, */
2312 .svhs = UNSET, 2191 .svhs = NO_SVHS,
2313 .muxsel = { 2, 3, 1, 0 }, 2192 .muxsel = { 2, 3, 1, 0 },
2314 .no_msp34xx = 1, 2193 .no_msp34xx = 1,
2315 .no_tda9875 = 1, 2194 .no_tda9875 = 1,
@@ -2317,16 +2196,14 @@ struct tvcard bttv_tvcards[] = {
2317 .needs_tvaudio = 0, 2196 .needs_tvaudio = 0,
2318 .tuner_type = TUNER_ABSENT, 2197 .tuner_type = TUNER_ABSENT,
2319 .tuner_addr = ADDR_UNSET, 2198 .tuner_addr = ADDR_UNSET,
2320 .radio_addr = ADDR_UNSET,
2321 }, 2199 },
2322 [BTTV_BOARD_TEKRAM_M205] = { 2200 [BTTV_BOARD_TEKRAM_M205] = {
2323 /* Helmroos Harri <harri.helmroos@pp.inet.fi> */ 2201 /* Helmroos Harri <harri.helmroos@pp.inet.fi> */
2324 .name = "Tekram M205 PRO", 2202 .name = "Tekram M205 PRO",
2325 .video_inputs = 3, 2203 .video_inputs = 3,
2326 .audio_inputs = 1, 2204 /* .audio_inputs= 1, */
2327 .tuner_type = TUNER_PHILIPS_PAL, 2205 .tuner_type = TUNER_PHILIPS_PAL,
2328 .tuner_addr = ADDR_UNSET, 2206 .tuner_addr = ADDR_UNSET,
2329 .radio_addr = ADDR_UNSET,
2330 .svhs = 2, 2207 .svhs = 2,
2331 .needs_tvaudio = 0, 2208 .needs_tvaudio = 0,
2332 .gpiomask = 0x68, 2209 .gpiomask = 0x68,
@@ -2341,7 +2218,7 @@ struct tvcard bttv_tvcards[] = {
2341 /* bt878 TV + FM without subsystem ID */ 2218 /* bt878 TV + FM without subsystem ID */
2342 .name = "Conceptronic CONTVFMi", 2219 .name = "Conceptronic CONTVFMi",
2343 .video_inputs = 3, 2220 .video_inputs = 3,
2344 .audio_inputs = 1, 2221 /* .audio_inputs= 1, */
2345 .svhs = 2, 2222 .svhs = 2,
2346 .gpiomask = 0x008007, 2223 .gpiomask = 0x008007,
2347 .muxsel = { 2, 3, 1, 1 }, 2224 .muxsel = { 2, 3, 1, 1 },
@@ -2351,7 +2228,6 @@ struct tvcard bttv_tvcards[] = {
2351 .pll = PLL_28, 2228 .pll = PLL_28,
2352 .tuner_type = TUNER_PHILIPS_PAL, 2229 .tuner_type = TUNER_PHILIPS_PAL,
2353 .tuner_addr = ADDR_UNSET, 2230 .tuner_addr = ADDR_UNSET,
2354 .radio_addr = ADDR_UNSET,
2355 .has_remote = 1, 2231 .has_remote = 1,
2356 .has_radio = 1, 2232 .has_radio = 1,
2357 }, 2233 },
@@ -2362,8 +2238,8 @@ struct tvcard bttv_tvcards[] = {
2362 /*0x79 in bttv.h*/ 2238 /*0x79 in bttv.h*/
2363 .name = "Euresys Picolo Tetra", 2239 .name = "Euresys Picolo Tetra",
2364 .video_inputs = 4, 2240 .video_inputs = 4,
2365 .audio_inputs = 0, 2241 /* .audio_inputs= 0, */
2366 .svhs = UNSET, 2242 .svhs = NO_SVHS,
2367 .gpiomask = 0, 2243 .gpiomask = 0,
2368 .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/ 2244 .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/
2369 .no_msp34xx = 1, 2245 .no_msp34xx = 1,
@@ -2376,21 +2252,19 @@ struct tvcard bttv_tvcards[] = {
2376 .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/ 2252 .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/
2377 .tuner_type = TUNER_ABSENT, 2253 .tuner_type = TUNER_ABSENT,
2378 .tuner_addr = ADDR_UNSET, 2254 .tuner_addr = ADDR_UNSET,
2379 .radio_addr = ADDR_UNSET,
2380 }, 2255 },
2381 [BTTV_BOARD_SPIRIT_TV] = { 2256 [BTTV_BOARD_SPIRIT_TV] = {
2382 /* Spirit TV Tuner from http://spiritmodems.com.au */ 2257 /* Spirit TV Tuner from http://spiritmodems.com.au */
2383 /* Stafford Goodsell <surge@goliath.homeunix.org> */ 2258 /* Stafford Goodsell <surge@goliath.homeunix.org> */
2384 .name = "Spirit TV Tuner", 2259 .name = "Spirit TV Tuner",
2385 .video_inputs = 3, 2260 .video_inputs = 3,
2386 .audio_inputs = 1, 2261 /* .audio_inputs= 1, */
2387 .svhs = 2, 2262 .svhs = 2,
2388 .gpiomask = 0x0000000f, 2263 .gpiomask = 0x0000000f,
2389 .muxsel = { 2, 1, 1 }, 2264 .muxsel = { 2, 1, 1 },
2390 .gpiomux = { 0x02, 0x00, 0x00, 0x00 }, 2265 .gpiomux = { 0x02, 0x00, 0x00, 0x00 },
2391 .tuner_type = TUNER_TEMIC_PAL, 2266 .tuner_type = TUNER_TEMIC_PAL,
2392 .tuner_addr = ADDR_UNSET, 2267 .tuner_addr = ADDR_UNSET,
2393 .radio_addr = ADDR_UNSET,
2394 .no_msp34xx = 1, 2268 .no_msp34xx = 1,
2395 .no_tda9875 = 1, 2269 .no_tda9875 = 1,
2396 }, 2270 },
@@ -2401,7 +2275,6 @@ struct tvcard bttv_tvcards[] = {
2401 .svhs = 1, 2275 .svhs = 1,
2402 .tuner_type = TUNER_ABSENT, 2276 .tuner_type = TUNER_ABSENT,
2403 .tuner_addr = ADDR_UNSET, 2277 .tuner_addr = ADDR_UNSET,
2404 .radio_addr = ADDR_UNSET,
2405 .muxsel = { 3 , 3 }, 2278 .muxsel = { 3 , 3 },
2406 .no_msp34xx = 1, 2279 .no_msp34xx = 1,
2407 .no_tda9875 = 1, 2280 .no_tda9875 = 1,
@@ -2425,43 +2298,40 @@ struct tvcard bttv_tvcards[] = {
2425 .pll = PLL_28, 2298 .pll = PLL_28,
2426 .tuner_type = TUNER_ABSENT, 2299 .tuner_type = TUNER_ABSENT,
2427 .tuner_addr = ADDR_UNSET, 2300 .tuner_addr = ADDR_UNSET,
2428 .radio_addr = ADDR_UNSET,
2429 .has_dvb = 1, 2301 .has_dvb = 1,
2430 .no_gpioirq = 1, 2302 .no_gpioirq = 1,
2431 .has_remote = 1, 2303 .has_remote = 1,
2432 }, 2304 },
2433 [BTTV_BOARD_MATRIX_VISIONSQ] = { 2305 [BTTV_BOARD_MATRIX_VISIONSQ] = {
2434 /* andre.schwarz@matrix-vision.de */ 2306 /* andre.schwarz@matrix-vision.de */
2435 .name = "MATRIX Vision Sigma-SQ", 2307 .name = "MATRIX Vision Sigma-SQ",
2436 .video_inputs = 16, 2308 .video_inputs = 16,
2437 .audio_inputs = 0, 2309 /* .audio_inputs= 0, */
2438 .svhs = UNSET, 2310 .svhs = NO_SVHS,
2439 .gpiomask = 0x0, 2311 .gpiomask = 0x0,
2440 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2312 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
2441 3, 3, 3, 3, 3, 3, 3, 3 }, 2313 3, 3, 3, 3, 3, 3, 3, 3 },
2442 .muxsel_hook = sigmaSQ_muxsel, 2314 .muxsel_hook = sigmaSQ_muxsel,
2443 .gpiomux = { 0 }, 2315 .gpiomux = { 0 },
2444 .no_msp34xx = 1, 2316 .no_msp34xx = 1,
2445 .pll = PLL_28, 2317 .pll = PLL_28,
2446 .tuner_type = TUNER_ABSENT, 2318 .tuner_type = TUNER_ABSENT,
2447 .tuner_addr = ADDR_UNSET, 2319 .tuner_addr = ADDR_UNSET,
2448 .radio_addr = ADDR_UNSET,
2449 }, 2320 },
2450 [BTTV_BOARD_MATRIX_VISIONSLC] = { 2321 [BTTV_BOARD_MATRIX_VISIONSLC] = {
2451 /* andre.schwarz@matrix-vision.de */ 2322 /* andre.schwarz@matrix-vision.de */
2452 .name = "MATRIX Vision Sigma-SLC", 2323 .name = "MATRIX Vision Sigma-SLC",
2453 .video_inputs = 4, 2324 .video_inputs = 4,
2454 .audio_inputs = 0, 2325 /* .audio_inputs= 0, */
2455 .svhs = UNSET, 2326 .svhs = NO_SVHS,
2456 .gpiomask = 0x0, 2327 .gpiomask = 0x0,
2457 .muxsel = { 2, 2, 2, 2 }, 2328 .muxsel = { 2, 2, 2, 2 },
2458 .muxsel_hook = sigmaSLC_muxsel, 2329 .muxsel_hook = sigmaSLC_muxsel,
2459 .gpiomux = { 0 }, 2330 .gpiomux = { 0 },
2460 .no_msp34xx = 1, 2331 .no_msp34xx = 1,
2461 .pll = PLL_28, 2332 .pll = PLL_28,
2462 .tuner_type = TUNER_ABSENT, 2333 .tuner_type = TUNER_ABSENT,
2463 .tuner_addr = ADDR_UNSET, 2334 .tuner_addr = ADDR_UNSET,
2464 .radio_addr = ADDR_UNSET,
2465 }, 2335 },
2466 /* BTTV_BOARD_APAC_VIEWCOMP */ 2336 /* BTTV_BOARD_APAC_VIEWCOMP */
2467 [BTTV_BOARD_APAC_VIEWCOMP] = { 2337 [BTTV_BOARD_APAC_VIEWCOMP] = {
@@ -2469,8 +2339,8 @@ struct tvcard bttv_tvcards[] = {
2469 /* bt878 TV + FM 0x00000000 subsystem ID */ 2339 /* bt878 TV + FM 0x00000000 subsystem ID */
2470 .name = "APAC Viewcomp 878(AMAX)", 2340 .name = "APAC Viewcomp 878(AMAX)",
2471 .video_inputs = 2, 2341 .video_inputs = 2,
2472 .audio_inputs = 1, 2342 /* .audio_inputs= 1, */
2473 .svhs = UNSET, 2343 .svhs = NO_SVHS,
2474 .gpiomask = 0xFF, 2344 .gpiomask = 0xFF,
2475 .muxsel = { 2, 3, 1, 1 }, 2345 .muxsel = { 2, 3, 1, 1 },
2476 .gpiomux = { 2, 0, 0, 0 }, 2346 .gpiomux = { 2, 0, 0, 0 },
@@ -2479,7 +2349,6 @@ struct tvcard bttv_tvcards[] = {
2479 .pll = PLL_28, 2349 .pll = PLL_28,
2480 .tuner_type = TUNER_PHILIPS_PAL, 2350 .tuner_type = TUNER_PHILIPS_PAL,
2481 .tuner_addr = ADDR_UNSET, 2351 .tuner_addr = ADDR_UNSET,
2482 .radio_addr = ADDR_UNSET,
2483 .has_remote = 1, /* miniremote works, see ir-kbd-gpio.c */ 2352 .has_remote = 1, /* miniremote works, see ir-kbd-gpio.c */
2484 .has_radio = 1, /* not every card has radio */ 2353 .has_radio = 1, /* not every card has radio */
2485 }, 2354 },
@@ -2496,13 +2365,12 @@ struct tvcard bttv_tvcards[] = {
2496 .has_dvb = 1, 2365 .has_dvb = 1,
2497 .tuner_type = TUNER_ABSENT, 2366 .tuner_type = TUNER_ABSENT,
2498 .tuner_addr = ADDR_UNSET, 2367 .tuner_addr = ADDR_UNSET,
2499 .radio_addr = ADDR_UNSET,
2500 }, 2368 },
2501 [BTTV_BOARD_VGEAR_MYVCD] = { 2369 [BTTV_BOARD_VGEAR_MYVCD] = {
2502 /* Steven <photon38@pchome.com.tw> */ 2370 /* Steven <photon38@pchome.com.tw> */
2503 .name = "V-Gear MyVCD", 2371 .name = "V-Gear MyVCD",
2504 .video_inputs = 3, 2372 .video_inputs = 3,
2505 .audio_inputs = 1, 2373 /* .audio_inputs= 1, */
2506 .svhs = 2, 2374 .svhs = 2,
2507 .gpiomask = 0x3f, 2375 .gpiomask = 0x3f,
2508 .muxsel = {2, 3, 1, 0 }, 2376 .muxsel = {2, 3, 1, 0 },
@@ -2512,19 +2380,17 @@ struct tvcard bttv_tvcards[] = {
2512 .pll = PLL_28, 2380 .pll = PLL_28,
2513 .tuner_type = TUNER_PHILIPS_NTSC_M, 2381 .tuner_type = TUNER_PHILIPS_NTSC_M,
2514 .tuner_addr = ADDR_UNSET, 2382 .tuner_addr = ADDR_UNSET,
2515 .radio_addr = ADDR_UNSET,
2516 .has_radio = 0, 2383 .has_radio = 0,
2517 }, 2384 },
2518 [BTTV_BOARD_SUPER_TV] = { 2385 [BTTV_BOARD_SUPER_TV] = {
2519 /* Rick C <cryptdragoon@gmail.com> */ 2386 /* Rick C <cryptdragoon@gmail.com> */
2520 .name = "Super TV Tuner", 2387 .name = "Super TV Tuner",
2521 .video_inputs = 4, 2388 .video_inputs = 4,
2522 .audio_inputs = 1, 2389 /* .audio_inputs= 1, */
2523 .svhs = 2, 2390 .svhs = 2,
2524 .muxsel = { 2, 3, 1, 0 }, 2391 .muxsel = { 2, 3, 1, 0 },
2525 .tuner_type = TUNER_PHILIPS_NTSC, 2392 .tuner_type = TUNER_PHILIPS_NTSC,
2526 .tuner_addr = ADDR_UNSET, 2393 .tuner_addr = ADDR_UNSET,
2527 .radio_addr = ADDR_UNSET,
2528 .gpiomask = 0x008007, 2394 .gpiomask = 0x008007,
2529 .gpiomux = { 0, 0x000001,0,0 }, 2395 .gpiomux = { 0, 0x000001,0,0 },
2530 .needs_tvaudio = 1, 2396 .needs_tvaudio = 1,
@@ -2534,8 +2400,8 @@ struct tvcard bttv_tvcards[] = {
2534 /* Chris Fanning <video4linux@haydon.net> */ 2400 /* Chris Fanning <video4linux@haydon.net> */
2535 .name = "Tibet Systems 'Progress DVR' CS16", 2401 .name = "Tibet Systems 'Progress DVR' CS16",
2536 .video_inputs = 16, 2402 .video_inputs = 16,
2537 .audio_inputs = 0, 2403 /* .audio_inputs= 0, */
2538 .svhs = UNSET, 2404 .svhs = NO_SVHS,
2539 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, 2405 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
2540 .pll = PLL_28, 2406 .pll = PLL_28,
2541 .no_msp34xx = 1, 2407 .no_msp34xx = 1,
@@ -2543,7 +2409,6 @@ struct tvcard bttv_tvcards[] = {
2543 .no_tda7432 = 1, 2409 .no_tda7432 = 1,
2544 .tuner_type = TUNER_ABSENT, 2410 .tuner_type = TUNER_ABSENT,
2545 .tuner_addr = ADDR_UNSET, 2411 .tuner_addr = ADDR_UNSET,
2546 .radio_addr = ADDR_UNSET,
2547 .muxsel_hook = tibetCS16_muxsel, 2412 .muxsel_hook = tibetCS16_muxsel,
2548 }, 2413 },
2549 [BTTV_BOARD_KODICOM_4400R] = { 2414 [BTTV_BOARD_KODICOM_4400R] = {
@@ -2560,11 +2425,10 @@ struct tvcard bttv_tvcards[] = {
2560 */ 2425 */
2561 .name = "Kodicom 4400R (master)", 2426 .name = "Kodicom 4400R (master)",
2562 .video_inputs = 16, 2427 .video_inputs = 16,
2563 .audio_inputs = 0, 2428 /* .audio_inputs= 0, */
2564 .tuner_type = TUNER_ABSENT, 2429 .tuner_type = TUNER_ABSENT,
2565 .tuner_addr = ADDR_UNSET, 2430 .tuner_addr = ADDR_UNSET,
2566 .radio_addr = ADDR_UNSET, 2431 .svhs = NO_SVHS,
2567 .svhs = UNSET,
2568 /* GPIO bits 0-9 used for analog switch: 2432 /* GPIO bits 0-9 used for analog switch:
2569 * 00 - 03: camera selector 2433 * 00 - 03: camera selector
2570 * 04 - 06: channel (controller) selector 2434 * 04 - 06: channel (controller) selector
@@ -2591,11 +2455,10 @@ struct tvcard bttv_tvcards[] = {
2591 */ 2455 */
2592 .name = "Kodicom 4400R (slave)", 2456 .name = "Kodicom 4400R (slave)",
2593 .video_inputs = 16, 2457 .video_inputs = 16,
2594 .audio_inputs = 0, 2458 /* .audio_inputs= 0, */
2595 .tuner_type = TUNER_ABSENT, 2459 .tuner_type = TUNER_ABSENT,
2596 .tuner_addr = ADDR_UNSET, 2460 .tuner_addr = ADDR_UNSET,
2597 .radio_addr = ADDR_UNSET, 2461 .svhs = NO_SVHS,
2598 .svhs = UNSET,
2599 .gpiomask = 0x010000, 2462 .gpiomask = 0x010000,
2600 .no_gpioirq = 1, 2463 .no_gpioirq = 1,
2601 .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, 2464 .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
@@ -2611,12 +2474,11 @@ struct tvcard bttv_tvcards[] = {
2611 /* Adlink RTV24 with special unlock codes */ 2474 /* Adlink RTV24 with special unlock codes */
2612 .name = "Adlink RTV24", 2475 .name = "Adlink RTV24",
2613 .video_inputs = 4, 2476 .video_inputs = 4,
2614 .audio_inputs = 1, 2477 /* .audio_inputs= 1, */
2615 .svhs = 2, 2478 .svhs = 2,
2616 .muxsel = { 2, 3, 1, 0 }, 2479 .muxsel = { 2, 3, 1, 0 },
2617 .tuner_type = UNSET, 2480 .tuner_type = UNSET,
2618 .tuner_addr = ADDR_UNSET, 2481 .tuner_addr = ADDR_UNSET,
2619 .radio_addr = ADDR_UNSET,
2620 .pll = PLL_28, 2482 .pll = PLL_28,
2621 }, 2483 },
2622 /* ---- card 0x87---------------------------------- */ 2484 /* ---- card 0x87---------------------------------- */
@@ -2625,9 +2487,8 @@ struct tvcard bttv_tvcards[] = {
2625 .name = "DViCO FusionHDTV 5 Lite", 2487 .name = "DViCO FusionHDTV 5 Lite",
2626 .tuner_type = TUNER_LG_TDVS_H06XF, /* TDVS-H064F */ 2488 .tuner_type = TUNER_LG_TDVS_H06XF, /* TDVS-H064F */
2627 .tuner_addr = ADDR_UNSET, 2489 .tuner_addr = ADDR_UNSET,
2628 .radio_addr = ADDR_UNSET,
2629 .video_inputs = 3, 2490 .video_inputs = 3,
2630 .audio_inputs = 1, 2491 /* .audio_inputs= 1, */
2631 .svhs = 2, 2492 .svhs = 2,
2632 .muxsel = { 2, 3, 1 }, 2493 .muxsel = { 2, 3, 1 },
2633 .gpiomask = 0x00e00007, 2494 .gpiomask = 0x00e00007,
@@ -2643,7 +2504,7 @@ struct tvcard bttv_tvcards[] = {
2643 /* Mauro Carvalho Chehab <mchehab@infradead.org> */ 2504 /* Mauro Carvalho Chehab <mchehab@infradead.org> */
2644 .name = "Acorp Y878F", 2505 .name = "Acorp Y878F",
2645 .video_inputs = 3, 2506 .video_inputs = 3,
2646 .audio_inputs = 1, 2507 /* .audio_inputs= 1, */
2647 .svhs = 2, 2508 .svhs = 2,
2648 .gpiomask = 0x01fe00, 2509 .gpiomask = 0x01fe00,
2649 .muxsel = { 2, 3, 1, 1 }, 2510 .muxsel = { 2, 3, 1, 1 },
@@ -2653,14 +2514,13 @@ struct tvcard bttv_tvcards[] = {
2653 .pll = PLL_28, 2514 .pll = PLL_28,
2654 .tuner_type = TUNER_YMEC_TVF66T5_B_DFF, 2515 .tuner_type = TUNER_YMEC_TVF66T5_B_DFF,
2655 .tuner_addr = 0xc1 >>1, 2516 .tuner_addr = 0xc1 >>1,
2656 .radio_addr = 0xc1 >>1,
2657 .has_radio = 1, 2517 .has_radio = 1,
2658 }, 2518 },
2659 /* ---- card 0x89 ---------------------------------- */ 2519 /* ---- card 0x89 ---------------------------------- */
2660 [BTTV_BOARD_CONCEPTRONIC_CTVFMI2] = { 2520 [BTTV_BOARD_CONCEPTRONIC_CTVFMI2] = {
2661 .name = "Conceptronic CTVFMi v2", 2521 .name = "Conceptronic CTVFMi v2",
2662 .video_inputs = 3, 2522 .video_inputs = 3,
2663 .audio_inputs = 1, 2523 /* .audio_inputs= 1, */
2664 .svhs = 2, 2524 .svhs = 2,
2665 .gpiomask = 0x001c0007, 2525 .gpiomask = 0x001c0007,
2666 .muxsel = { 2, 3, 1, 1 }, 2526 .muxsel = { 2, 3, 1, 1 },
@@ -2670,34 +2530,32 @@ struct tvcard bttv_tvcards[] = {
2670 .pll = PLL_28, 2530 .pll = PLL_28,
2671 .tuner_type = TUNER_TENA_9533_DI, 2531 .tuner_type = TUNER_TENA_9533_DI,
2672 .tuner_addr = ADDR_UNSET, 2532 .tuner_addr = ADDR_UNSET,
2673 .radio_addr = ADDR_UNSET,
2674 .has_remote = 1, 2533 .has_remote = 1,
2675 .has_radio = 1, 2534 .has_radio = 1,
2676 }, 2535 },
2677 /* ---- card 0x8a ---------------------------------- */ 2536 /* ---- card 0x8a ---------------------------------- */
2678 [BTTV_BOARD_PV_BT878P_2E] = { 2537 [BTTV_BOARD_PV_BT878P_2E] = {
2679 .name = "Prolink Pixelview PV-BT878P+ (Rev.2E)", 2538 .name = "Prolink Pixelview PV-BT878P+ (Rev.2E)",
2680 .video_inputs = 5, 2539 .video_inputs = 5,
2681 .audio_inputs = 1, 2540 /* .audio_inputs= 1, */
2682 .svhs = 3, 2541 .svhs = 3,
2683 .gpiomask = 0x01fe00, 2542 .gpiomask = 0x01fe00,
2684 .muxsel = { 2,3,1,1,-1 }, 2543 .muxsel = { 2, 3, 1, 1, -1 },
2685 .digital_mode = DIGITAL_MODE_CAMERA, 2544 /* .digital_mode= DIGITAL_MODE_CAMERA, */
2686 .gpiomux = { 0x00400, 0x10400, 0x04400, 0x80000 }, 2545 .gpiomux = { 0x00400, 0x10400, 0x04400, 0x80000 },
2687 .gpiomute = 0x12400, 2546 .gpiomute = 0x12400,
2688 .no_msp34xx = 1, 2547 .no_msp34xx = 1,
2689 .pll = PLL_28, 2548 .pll = PLL_28,
2690 .tuner_type = TUNER_LG_PAL_FM, 2549 .tuner_type = TUNER_LG_PAL_FM,
2691 .tuner_addr = ADDR_UNSET, 2550 .tuner_addr = ADDR_UNSET,
2692 .radio_addr = ADDR_UNSET, 2551 .has_remote = 1,
2693 .has_remote = 1,
2694 }, 2552 },
2695 /* ---- card 0x8b ---------------------------------- */ 2553 /* ---- card 0x8b ---------------------------------- */
2696 [BTTV_BOARD_PV_M4900] = { 2554 [BTTV_BOARD_PV_M4900] = {
2697 /* Sérgio Fortier <sergiofortier@yahoo.com.br> */ 2555 /* Sérgio Fortier <sergiofortier@yahoo.com.br> */
2698 .name = "Prolink PixelView PlayTV MPEG2 PV-M4900", 2556 .name = "Prolink PixelView PlayTV MPEG2 PV-M4900",
2699 .video_inputs = 3, 2557 .video_inputs = 3,
2700 .audio_inputs = 1, 2558 /* .audio_inputs= 1, */
2701 .svhs = 2, 2559 .svhs = 2,
2702 .gpiomask = 0x3f, 2560 .gpiomask = 0x3f,
2703 .muxsel = { 2, 3, 1, 1 }, 2561 .muxsel = { 2, 3, 1, 1 },
@@ -2707,7 +2565,6 @@ struct tvcard bttv_tvcards[] = {
2707 .pll = PLL_28, 2565 .pll = PLL_28,
2708 .tuner_type = TUNER_YMEC_TVF_5533MF, 2566 .tuner_type = TUNER_YMEC_TVF_5533MF,
2709 .tuner_addr = ADDR_UNSET, 2567 .tuner_addr = ADDR_UNSET,
2710 .radio_addr = ADDR_UNSET,
2711 .has_radio = 1, 2568 .has_radio = 1,
2712 .has_remote = 1, 2569 .has_remote = 1,
2713 }, 2570 },
@@ -2727,8 +2584,8 @@ struct tvcard bttv_tvcards[] = {
2727 [BTTV_BOARD_OSPREY440] = { 2584 [BTTV_BOARD_OSPREY440] = {
2728 .name = "Osprey 440", 2585 .name = "Osprey 440",
2729 .video_inputs = 4, 2586 .video_inputs = 4,
2730 .audio_inputs = 2, /* this is meaningless */ 2587 /* .audio_inputs= 2, */
2731 .svhs = UNSET, 2588 .svhs = NO_SVHS,
2732 .muxsel = { 2, 3, 0, 1 }, /* 3,0,1 are guesses */ 2589 .muxsel = { 2, 3, 0, 1 }, /* 3,0,1 are guesses */
2733 .gpiomask = 0x303, 2590 .gpiomask = 0x303,
2734 .gpiomute = 0x000, /* int + 32kHz */ 2591 .gpiomute = 0x000, /* int + 32kHz */
@@ -2736,7 +2593,6 @@ struct tvcard bttv_tvcards[] = {
2736 .pll = PLL_28, 2593 .pll = PLL_28,
2737 .tuner_type = TUNER_ABSENT, 2594 .tuner_type = TUNER_ABSENT,
2738 .tuner_addr = ADDR_UNSET, 2595 .tuner_addr = ADDR_UNSET,
2739 .radio_addr = ADDR_UNSET,
2740 .no_msp34xx = 1, 2596 .no_msp34xx = 1,
2741 .no_tda9875 = 1, 2597 .no_tda9875 = 1,
2742 .no_tda7432 = 1, 2598 .no_tda7432 = 1,
@@ -2745,7 +2601,7 @@ struct tvcard bttv_tvcards[] = {
2745 [BTTV_BOARD_ASOUND_SKYEYE] = { 2601 [BTTV_BOARD_ASOUND_SKYEYE] = {
2746 .name = "Asound Skyeye PCTV", 2602 .name = "Asound Skyeye PCTV",
2747 .video_inputs = 3, 2603 .video_inputs = 3,
2748 .audio_inputs = 1, 2604 /* .audio_inputs= 1, */
2749 .svhs = 2, 2605 .svhs = 2,
2750 .gpiomask = 15, 2606 .gpiomask = 15,
2751 .muxsel = { 2, 3, 1, 1 }, 2607 .muxsel = { 2, 3, 1, 1 },
@@ -2755,13 +2611,12 @@ struct tvcard bttv_tvcards[] = {
2755 .pll = PLL_28, 2611 .pll = PLL_28,
2756 .tuner_type = TUNER_PHILIPS_NTSC, 2612 .tuner_type = TUNER_PHILIPS_NTSC,
2757 .tuner_addr = ADDR_UNSET, 2613 .tuner_addr = ADDR_UNSET,
2758 .radio_addr = ADDR_UNSET,
2759 }, 2614 },
2760 /* ---- card 0x8e ---------------------------------- */ 2615 /* ---- card 0x8e ---------------------------------- */
2761 [BTTV_BOARD_SABRENT_TVFM] = { 2616 [BTTV_BOARD_SABRENT_TVFM] = {
2762 .name = "Sabrent TV-FM (bttv version)", 2617 .name = "Sabrent TV-FM (bttv version)",
2763 .video_inputs = 3, 2618 .video_inputs = 3,
2764 .audio_inputs = 1, 2619 /* .audio_inputs= 1, */
2765 .svhs = 2, 2620 .svhs = 2,
2766 .gpiomask = 0x108007, 2621 .gpiomask = 0x108007,
2767 .muxsel = { 2, 3, 1, 1 }, 2622 .muxsel = { 2, 3, 1, 1 },
@@ -2778,8 +2633,8 @@ struct tvcard bttv_tvcards[] = {
2778 [BTTV_BOARD_HAUPPAUGE_IMPACTVCB] = { 2633 [BTTV_BOARD_HAUPPAUGE_IMPACTVCB] = {
2779 .name = "Hauppauge ImpactVCB (bt878)", 2634 .name = "Hauppauge ImpactVCB (bt878)",
2780 .video_inputs = 4, 2635 .video_inputs = 4,
2781 .audio_inputs = 0, 2636 /* .audio_inputs= 0, */
2782 .svhs = UNSET, 2637 .svhs = NO_SVHS,
2783 .gpiomask = 0x0f, /* old: 7 */ 2638 .gpiomask = 0x0f, /* old: 7 */
2784 .muxsel = { 0, 1, 3, 2 }, /* Composite 0-3 */ 2639 .muxsel = { 0, 1, 3, 2 }, /* Composite 0-3 */
2785 .no_msp34xx = 1, 2640 .no_msp34xx = 1,
@@ -2787,7 +2642,6 @@ struct tvcard bttv_tvcards[] = {
2787 .no_tda7432 = 1, 2642 .no_tda7432 = 1,
2788 .tuner_type = TUNER_ABSENT, 2643 .tuner_type = TUNER_ABSENT,
2789 .tuner_addr = ADDR_UNSET, 2644 .tuner_addr = ADDR_UNSET,
2790 .radio_addr = ADDR_UNSET,
2791 }, 2645 },
2792 [BTTV_BOARD_MACHTV_MAGICTV] = { 2646 [BTTV_BOARD_MACHTV_MAGICTV] = {
2793 /* Julian Calaby <julian.calaby@gmail.com> 2647 /* Julian Calaby <julian.calaby@gmail.com>
@@ -2799,7 +2653,7 @@ struct tvcard bttv_tvcards[] = {
2799 2653
2800 .name = "MagicTV", /* rebranded MachTV */ 2654 .name = "MagicTV", /* rebranded MachTV */
2801 .video_inputs = 3, 2655 .video_inputs = 3,
2802 .audio_inputs = 1, 2656 /* .audio_inputs= 1, */
2803 .svhs = 2, 2657 .svhs = 2,
2804 .gpiomask = 7, 2658 .gpiomask = 7,
2805 .muxsel = { 2, 3, 1, 1 }, 2659 .muxsel = { 2, 3, 1, 1 },
@@ -2807,7 +2661,6 @@ struct tvcard bttv_tvcards[] = {
2807 .gpiomute = 4, 2661 .gpiomute = 4,
2808 .tuner_type = TUNER_TEMIC_4009FR5_PAL, 2662 .tuner_type = TUNER_TEMIC_4009FR5_PAL,
2809 .tuner_addr = ADDR_UNSET, 2663 .tuner_addr = ADDR_UNSET,
2810 .radio_addr = ADDR_UNSET,
2811 .pll = PLL_28, 2664 .pll = PLL_28,
2812 .has_radio = 1, 2665 .has_radio = 1,
2813 .has_remote = 1, 2666 .has_remote = 1,
@@ -2815,31 +2668,28 @@ struct tvcard bttv_tvcards[] = {
2815 [BTTV_BOARD_SSAI_SECURITY] = { 2668 [BTTV_BOARD_SSAI_SECURITY] = {
2816 .name = "SSAI Security Video Interface", 2669 .name = "SSAI Security Video Interface",
2817 .video_inputs = 4, 2670 .video_inputs = 4,
2818 .audio_inputs = 0, 2671 /* .audio_inputs= 0, */
2819 .svhs = UNSET, 2672 .svhs = NO_SVHS,
2820 .muxsel = { 0, 1, 2, 3 }, 2673 .muxsel = { 0, 1, 2, 3 },
2821 .tuner_type = TUNER_ABSENT, 2674 .tuner_type = TUNER_ABSENT,
2822 .tuner_addr = ADDR_UNSET, 2675 .tuner_addr = ADDR_UNSET,
2823 .radio_addr = ADDR_UNSET,
2824 }, 2676 },
2825 [BTTV_BOARD_SSAI_ULTRASOUND] = { 2677 [BTTV_BOARD_SSAI_ULTRASOUND] = {
2826 .name = "SSAI Ultrasound Video Interface", 2678 .name = "SSAI Ultrasound Video Interface",
2827 .video_inputs = 2, 2679 .video_inputs = 2,
2828 .audio_inputs = 0, 2680 /* .audio_inputs= 0, */
2829 .svhs = 1, 2681 .svhs = 1,
2830 .muxsel = { 2, 0, 1, 3 }, 2682 .muxsel = { 2, 0, 1, 3 },
2831 .tuner_type = TUNER_ABSENT, 2683 .tuner_type = TUNER_ABSENT,
2832 .tuner_addr = ADDR_UNSET, 2684 .tuner_addr = ADDR_UNSET,
2833 .radio_addr = ADDR_UNSET,
2834 }, 2685 },
2835 /* ---- card 0x94---------------------------------- */ 2686 /* ---- card 0x94---------------------------------- */
2836 [BTTV_BOARD_DVICO_FUSIONHDTV_2] = { 2687 [BTTV_BOARD_DVICO_FUSIONHDTV_2] = {
2837 .name = "DViCO FusionHDTV 2", 2688 .name = "DViCO FusionHDTV 2",
2838 .tuner_type = TUNER_PHILIPS_FCV1236D, 2689 .tuner_type = TUNER_PHILIPS_FCV1236D,
2839 .tuner_addr = ADDR_UNSET, 2690 .tuner_addr = ADDR_UNSET,
2840 .radio_addr = ADDR_UNSET,
2841 .video_inputs = 3, 2691 .video_inputs = 3,
2842 .audio_inputs = 1, 2692 /* .audio_inputs= 1, */
2843 .svhs = 2, 2693 .svhs = 2,
2844 .muxsel = { 2, 3, 1 }, 2694 .muxsel = { 2, 3, 1 },
2845 .gpiomask = 0x00e00007, 2695 .gpiomask = 0x00e00007,
@@ -2853,7 +2703,7 @@ struct tvcard bttv_tvcards[] = {
2853 [BTTV_BOARD_TYPHOON_TVTUNERPCI] = { 2703 [BTTV_BOARD_TYPHOON_TVTUNERPCI] = {
2854 .name = "Typhoon TV-Tuner PCI (50684)", 2704 .name = "Typhoon TV-Tuner PCI (50684)",
2855 .video_inputs = 3, 2705 .video_inputs = 3,
2856 .audio_inputs = 1, 2706 /* .audio_inputs= 1, */
2857 .svhs = 2, 2707 .svhs = 2,
2858 .gpiomask = 0x3014f, 2708 .gpiomask = 0x3014f,
2859 .muxsel = { 2, 3, 1, 1 }, 2709 .muxsel = { 2, 3, 1, 1 },
@@ -2863,24 +2713,22 @@ struct tvcard bttv_tvcards[] = {
2863 .pll = PLL_28, 2713 .pll = PLL_28,
2864 .tuner_type = TUNER_PHILIPS_PAL_I, 2714 .tuner_type = TUNER_PHILIPS_PAL_I,
2865 .tuner_addr = ADDR_UNSET, 2715 .tuner_addr = ADDR_UNSET,
2866 .radio_addr = ADDR_UNSET,
2867 }, 2716 },
2868 [BTTV_BOARD_GEOVISION_GV600] = { 2717 [BTTV_BOARD_GEOVISION_GV600] = {
2869 /* emhn@usb.ve */ 2718 /* emhn@usb.ve */
2870 .name = "Geovision GV-600", 2719 .name = "Geovision GV-600",
2871 .video_inputs = 16, 2720 .video_inputs = 16,
2872 .audio_inputs = 0, 2721 /* .audio_inputs= 0, */
2873 .svhs = UNSET, 2722 .svhs = NO_SVHS,
2874 .gpiomask = 0x0, 2723 .gpiomask = 0x0,
2875 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2724 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
2876 2, 2, 2, 2, 2, 2, 2, 2 }, 2725 2, 2, 2, 2, 2, 2, 2, 2 },
2877 .muxsel_hook = geovision_muxsel, 2726 .muxsel_hook = geovision_muxsel,
2878 .gpiomux = { 0 }, 2727 .gpiomux = { 0 },
2879 .no_msp34xx = 1, 2728 .no_msp34xx = 1,
2880 .pll = PLL_28, 2729 .pll = PLL_28,
2881 .tuner_type = TUNER_ABSENT, 2730 .tuner_type = TUNER_ABSENT,
2882 .tuner_addr = ADDR_UNSET, 2731 .tuner_addr = ADDR_UNSET,
2883 .radio_addr = ADDR_UNSET,
2884 }, 2732 },
2885 [BTTV_BOARD_KOZUMI_KTV_01C] = { 2733 [BTTV_BOARD_KOZUMI_KTV_01C] = {
2886 /* Mauro Lacy <mauro@lacy.com.ar> 2734 /* Mauro Lacy <mauro@lacy.com.ar>
@@ -2888,7 +2736,7 @@ struct tvcard bttv_tvcards[] = {
2888 2736
2889 .name = "Kozumi KTV-01C", 2737 .name = "Kozumi KTV-01C",
2890 .video_inputs = 3, 2738 .video_inputs = 3,
2891 .audio_inputs = 1, 2739 /* .audio_inputs= 1, */
2892 .svhs = 2, 2740 .svhs = 2,
2893 .gpiomask = 0x008007, 2741 .gpiomask = 0x008007,
2894 .muxsel = { 2, 3, 1, 1 }, 2742 .muxsel = { 2, 3, 1, 1 },
@@ -2897,7 +2745,6 @@ struct tvcard bttv_tvcards[] = {
2897 .needs_tvaudio = 0, 2745 .needs_tvaudio = 0,
2898 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MK3 */ 2746 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MK3 */
2899 .tuner_addr = ADDR_UNSET, 2747 .tuner_addr = ADDR_UNSET,
2900 .radio_addr = ADDR_UNSET,
2901 .pll = PLL_28, 2748 .pll = PLL_28,
2902 .has_radio = 1, 2749 .has_radio = 1,
2903 .has_remote = 1, 2750 .has_remote = 1,
@@ -2907,7 +2754,7 @@ struct tvcard bttv_tvcards[] = {
2907 Mauro Carvalho Chehab <mchehab@infradead.org */ 2754 Mauro Carvalho Chehab <mchehab@infradead.org */
2908 .name = "Encore ENL TV-FM-2", 2755 .name = "Encore ENL TV-FM-2",
2909 .video_inputs = 3, 2756 .video_inputs = 3,
2910 .audio_inputs = 1, 2757 /* .audio_inputs= 1, */
2911 .svhs = 2, 2758 .svhs = 2,
2912 /* bit 6 -> IR disabled 2759 /* bit 6 -> IR disabled
2913 bit 18/17 = 00 -> mute 2760 bit 18/17 = 00 -> mute
@@ -2921,7 +2768,6 @@ struct tvcard bttv_tvcards[] = {
2921 .gpiomute = 0, 2768 .gpiomute = 0,
2922 .tuner_type = TUNER_TCL_MF02GIP_5N, 2769 .tuner_type = TUNER_TCL_MF02GIP_5N,
2923 .tuner_addr = ADDR_UNSET, 2770 .tuner_addr = ADDR_UNSET,
2924 .radio_addr = ADDR_UNSET,
2925 .pll = PLL_28, 2771 .pll = PLL_28,
2926 .has_radio = 1, 2772 .has_radio = 1,
2927 .has_remote = 1, 2773 .has_remote = 1,
@@ -2930,8 +2776,8 @@ struct tvcard bttv_tvcards[] = {
2930 /* D.Heer@Phytec.de */ 2776 /* D.Heer@Phytec.de */
2931 .name = "PHYTEC VD-012 (bt878)", 2777 .name = "PHYTEC VD-012 (bt878)",
2932 .video_inputs = 4, 2778 .video_inputs = 4,
2933 .audio_inputs = 0, 2779 /* .audio_inputs= 0, */
2934 .svhs = UNSET, /* card has no s-video */ 2780 .svhs = NO_SVHS,
2935 .gpiomask = 0x00, 2781 .gpiomask = 0x00,
2936 .muxsel = { 0, 2, 3, 1 }, 2782 .muxsel = { 0, 2, 3, 1 },
2937 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */ 2783 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */
@@ -2939,13 +2785,12 @@ struct tvcard bttv_tvcards[] = {
2939 .pll = PLL_28, 2785 .pll = PLL_28,
2940 .tuner_type = TUNER_ABSENT, 2786 .tuner_type = TUNER_ABSENT,
2941 .tuner_addr = ADDR_UNSET, 2787 .tuner_addr = ADDR_UNSET,
2942 .radio_addr = ADDR_UNSET,
2943 }, 2788 },
2944 [BTTV_BOARD_VD012_X1] = { 2789 [BTTV_BOARD_VD012_X1] = {
2945 /* D.Heer@Phytec.de */ 2790 /* D.Heer@Phytec.de */
2946 .name = "PHYTEC VD-012-X1 (bt878)", 2791 .name = "PHYTEC VD-012-X1 (bt878)",
2947 .video_inputs = 4, 2792 .video_inputs = 4,
2948 .audio_inputs = 0, 2793 /* .audio_inputs= 0, */
2949 .svhs = 3, 2794 .svhs = 3,
2950 .gpiomask = 0x00, 2795 .gpiomask = 0x00,
2951 .muxsel = { 2, 3, 1 }, 2796 .muxsel = { 2, 3, 1 },
@@ -2954,13 +2799,12 @@ struct tvcard bttv_tvcards[] = {
2954 .pll = PLL_28, 2799 .pll = PLL_28,
2955 .tuner_type = TUNER_ABSENT, 2800 .tuner_type = TUNER_ABSENT,
2956 .tuner_addr = ADDR_UNSET, 2801 .tuner_addr = ADDR_UNSET,
2957 .radio_addr = ADDR_UNSET,
2958 }, 2802 },
2959 [BTTV_BOARD_VD012_X2] = { 2803 [BTTV_BOARD_VD012_X2] = {
2960 /* D.Heer@Phytec.de */ 2804 /* D.Heer@Phytec.de */
2961 .name = "PHYTEC VD-012-X2 (bt878)", 2805 .name = "PHYTEC VD-012-X2 (bt878)",
2962 .video_inputs = 4, 2806 .video_inputs = 4,
2963 .audio_inputs = 0, 2807 /* .audio_inputs= 0, */
2964 .svhs = 3, 2808 .svhs = 3,
2965 .gpiomask = 0x00, 2809 .gpiomask = 0x00,
2966 .muxsel = { 3, 2, 1 }, 2810 .muxsel = { 3, 2, 1 },
@@ -2969,7 +2813,6 @@ struct tvcard bttv_tvcards[] = {
2969 .pll = PLL_28, 2813 .pll = PLL_28,
2970 .tuner_type = TUNER_ABSENT, 2814 .tuner_type = TUNER_ABSENT,
2971 .tuner_addr = ADDR_UNSET, 2815 .tuner_addr = ADDR_UNSET,
2972 .radio_addr = ADDR_UNSET,
2973 } 2816 }
2974}; 2817};
2975 2818
@@ -3574,7 +3417,8 @@ void __devinit bttv_init_card2(struct bttv *btv)
3574 bttv_call_i2c_clients(btv, TUNER_SET_CONFIG, &tda9887_cfg); 3417 bttv_call_i2c_clients(btv, TUNER_SET_CONFIG, &tda9887_cfg);
3575 } 3418 }
3576 3419
3577 btv->svhs = bttv_tvcards[btv->c.type].svhs; 3420 btv->svhs = bttv_tvcards[btv->c.type].svhs == NO_SVHS ?
3421 UNSET : bttv_tvcards[btv->c.type].svhs;
3578 if (svhs[btv->c.nr] != UNSET) 3422 if (svhs[btv->c.nr] != UNSET)
3579 btv->svhs = svhs[btv->c.nr]; 3423 btv->svhs = svhs[btv->c.nr];
3580 if (remote[btv->c.nr] != UNSET) 3424 if (remote[btv->c.nr] != UNSET)
diff --git a/drivers/media/video/bt8xx/bttv.h b/drivers/media/video/bt8xx/bttv.h
index 861ff2f8f985..a2e140a25df6 100644
--- a/drivers/media/video/bt8xx/bttv.h
+++ b/drivers/media/video/bt8xx/bttv.h
@@ -192,10 +192,6 @@
192#define WINVIEW_PT2254_DATA 0x20 192#define WINVIEW_PT2254_DATA 0x20
193#define WINVIEW_PT2254_STROBE 0x80 193#define WINVIEW_PT2254_STROBE 0x80
194 194
195/* digital_mode */
196#define DIGITAL_MODE_VIDEO 1
197#define DIGITAL_MODE_CAMERA 2
198
199struct bttv_core { 195struct bttv_core {
200 /* device structs */ 196 /* device structs */
201 struct pci_dev *pci; 197 struct pci_dev *pci;
@@ -211,19 +207,24 @@ struct bttv_core {
211struct bttv; 207struct bttv;
212 208
213 209
214struct tvcard 210struct tvcard {
215{
216 char *name; 211 char *name;
217 unsigned int video_inputs; 212 void (*volume_gpio)(struct bttv *btv, __u16 volume);
218 unsigned int audio_inputs; 213 void (*audio_mode_gpio)(struct bttv *btv, struct v4l2_tuner *tuner, int set);
219 unsigned int svhs; 214 void (*muxsel_hook)(struct bttv *btv, unsigned int input);
220 unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO 215
221 u32 gpiomask; 216 u32 gpiomask;
222 u32 muxsel[16]; 217 u32 muxsel[16];
223 u32 gpiomux[4]; /* Tuner, Radio, external, internal */ 218 u32 gpiomux[4]; /* Tuner, Radio, external, internal */
224 u32 gpiomute; /* GPIO mute setting */ 219 u32 gpiomute; /* GPIO mute setting */
225 u32 gpiomask2; /* GPIO MUX mask */ 220 u32 gpiomask2; /* GPIO MUX mask */
226 221
222 unsigned int tuner_type;
223 u8 tuner_addr;
224 u8 video_inputs; /* Number of inputs */
225 unsigned int svhs:4; /* Which input is s-video */
226#define NO_SVHS 15
227
227 /* i2c audio flags */ 228 /* i2c audio flags */
228 unsigned int no_msp34xx:1; 229 unsigned int no_msp34xx:1;
229 unsigned int no_tda9875:1; 230 unsigned int no_tda9875:1;
@@ -231,28 +232,15 @@ struct tvcard
231 unsigned int needs_tvaudio:1; 232 unsigned int needs_tvaudio:1;
232 unsigned int msp34xx_alt:1; 233 unsigned int msp34xx_alt:1;
233 234
234 /* flag: video pci function is unused */ 235 unsigned int no_video:1; /* video pci function is unused */
235 unsigned int no_video:1;
236 unsigned int has_dvb:1; 236 unsigned int has_dvb:1;
237 unsigned int has_remote:1; 237 unsigned int has_remote:1;
238 unsigned int has_radio:1;
238 unsigned int no_gpioirq:1; 239 unsigned int no_gpioirq:1;
239 240 unsigned int pll:2;
240 /* other settings */
241 unsigned int pll;
242#define PLL_NONE 0 241#define PLL_NONE 0
243#define PLL_28 1 242#define PLL_28 1
244#define PLL_35 2 243#define PLL_35 2
245
246 unsigned int tuner_type;
247 unsigned int tuner_addr;
248 unsigned int radio_addr;
249
250 unsigned int has_radio;
251
252 void (*volume_gpio)(struct bttv *btv, __u16 volume);
253 void (*audio_mode_gpio)(struct bttv *btv, struct v4l2_tuner *tuner, int set);
254
255 void (*muxsel_hook)(struct bttv *btv, unsigned int input);
256}; 244};
257 245
258extern struct tvcard bttv_tvcards[]; 246extern struct tvcard bttv_tvcards[];