aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/bt8xx/bttv-cards.c
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2006-03-18 19:31:00 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-03-24 14:26:56 -0500
commit8bf2f8e747700419cc5bbc56c4496774eb8f2f1f (patch)
tree94e9b7e99d2e95d4515d48247ce549540374a989 /drivers/media/video/bt8xx/bttv-cards.c
parentae62e3d4a8194680023b47ab778bf1dcea8d6b42 (diff)
V4L/DVB (3577): Cleanup audio input handling
Cleanup audio input handling in bttv and tvaudio: - inputs were specified that were never used - mute was handled as a special input which led to confusing code - confusing naming made it difficult to see if the setting was for i2c or gpio. The old audiochip.h input names moved to tvaudio.h. Currently this is used both by tvaudio and msp3400 until the msp3400 implements the new msp3400-specific inputs. Detect in bttv the tvaudio and msp3400 i2c clients and use these client pointers to set the inputs directly instead of broadcasting the command. Removed AUDC_SET_INPUT. Now replaced by VIDIOC_S_AUDIO. This will be replaced again later by the new ROUTING commands. Removed VIDIOC_G_AUDIO implementations in i2c drivers: this command is a user level command and not to be used internally. It wasn't called at all anyway. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/bt8xx/bttv-cards.c')
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c299
1 files changed, 183 insertions, 116 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index e869bfbab378..f209a7492051 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -39,6 +39,7 @@
39 39
40#include "bttvp.h" 40#include "bttvp.h"
41#include <media/v4l2-common.h> 41#include <media/v4l2-common.h>
42#include <media/tvaudio.h>
42 43
43/* fwd decl */ 44/* fwd decl */
44static void boot_msp34xx(struct bttv *btv, int pin); 45static void boot_msp34xx(struct bttv *btv, int pin);
@@ -336,7 +337,8 @@ struct tvcard bttv_tvcards[] = {
336 .svhs = 2, 337 .svhs = 2,
337 .gpiomask = 15, 338 .gpiomask = 15,
338 .muxsel = { 2, 3, 1, 1 }, 339 .muxsel = { 2, 3, 1, 1 },
339 .audiomux = { 2, 0, 0, 0, 10 }, 340 .gpiomux = { 2, 0, 0, 0 },
341 .gpiomute = 10,
340 .needs_tvaudio = 1, 342 .needs_tvaudio = 1,
341 .tuner_type = -1, 343 .tuner_type = -1,
342 .tuner_addr = ADDR_UNSET, 344 .tuner_addr = ADDR_UNSET,
@@ -350,7 +352,8 @@ struct tvcard bttv_tvcards[] = {
350 .svhs = 2, 352 .svhs = 2,
351 .gpiomask = 7, 353 .gpiomask = 7,
352 .muxsel = { 2, 3, 1, 1 }, 354 .muxsel = { 2, 3, 1, 1 },
353 .audiomux = { 0, 1, 2, 3, 4 }, 355 .gpiomux = { 0, 1, 2, 3 },
356 .gpiomute = 4,
354 .needs_tvaudio = 1, 357 .needs_tvaudio = 1,
355 .tuner_type = -1, 358 .tuner_type = -1,
356 .tuner_addr = ADDR_UNSET, 359 .tuner_addr = ADDR_UNSET,
@@ -364,7 +367,8 @@ struct tvcard bttv_tvcards[] = {
364 .svhs = 2, 367 .svhs = 2,
365 .gpiomask = 7, 368 .gpiomask = 7,
366 .muxsel = { 2, 3, 1, 1 }, 369 .muxsel = { 2, 3, 1, 1 },
367 .audiomux = { 4, 0, 2, 3, 1 }, 370 .gpiomux = { 4, 0, 2, 3 },
371 .gpiomute = 1,
368 .no_msp34xx = 1, 372 .no_msp34xx = 1,
369 .needs_tvaudio = 1, 373 .needs_tvaudio = 1,
370 .tuner_type = TUNER_PHILIPS_NTSC, 374 .tuner_type = TUNER_PHILIPS_NTSC,
@@ -383,7 +387,7 @@ struct tvcard bttv_tvcards[] = {
383 .svhs = 2, 387 .svhs = 2,
384 .gpiomask = 0, 388 .gpiomask = 0,
385 .muxsel = { 2, 3, 1, 1 }, 389 .muxsel = { 2, 3, 1, 1 },
386 .audiomux = { 0 }, 390 .gpiomux = { 0 },
387 .needs_tvaudio = 0, 391 .needs_tvaudio = 0,
388 .tuner_type = 4, 392 .tuner_type = 4,
389 .tuner_addr = ADDR_UNSET, 393 .tuner_addr = ADDR_UNSET,
@@ -397,7 +401,8 @@ struct tvcard bttv_tvcards[] = {
397 .svhs = 2, 401 .svhs = 2,
398 .gpiomask = 3, 402 .gpiomask = 3,
399 .muxsel = { 2, 3, 1, 0 }, 403 .muxsel = { 2, 3, 1, 0 },
400 .audiomux = { 0, 1, 0, 1, 3 }, 404 .gpiomux = { 0, 1, 0, 1 },
405 .gpiomute = 3,
401 .needs_tvaudio = 1, 406 .needs_tvaudio = 1,
402 .tuner_type = -1, 407 .tuner_type = -1,
403 .tuner_addr = ADDR_UNSET, 408 .tuner_addr = ADDR_UNSET,
@@ -411,7 +416,7 @@ struct tvcard bttv_tvcards[] = {
411 .svhs = 3, 416 .svhs = 3,
412 .muxsel = { 2, 3, 1, 1 }, 417 .muxsel = { 2, 3, 1, 1 },
413 .gpiomask = 0x0f, 418 .gpiomask = 0x0f,
414 .audiomux = { 0x0c, 0x04, 0x08, 0x04, 0 }, 419 .gpiomux = { 0x0c, 0x04, 0x08, 0x04 },
415 /* 0x04 for some cards ?? */ 420 /* 0x04 for some cards ?? */
416 .needs_tvaudio = 1, 421 .needs_tvaudio = 1,
417 .tuner_type = -1, 422 .tuner_type = -1,
@@ -428,7 +433,7 @@ struct tvcard bttv_tvcards[] = {
428 .svhs = 3, 433 .svhs = 3,
429 .gpiomask = 0, 434 .gpiomask = 0,
430 .muxsel = { 2, 3, 1, 0, 0 }, 435 .muxsel = { 2, 3, 1, 0, 0 },
431 .audiomux = { 0 }, 436 .gpiomux = { 0 },
432 .needs_tvaudio = 1, 437 .needs_tvaudio = 1,
433 .tuner_type = -1, 438 .tuner_type = -1,
434 .tuner_addr = ADDR_UNSET, 439 .tuner_addr = ADDR_UNSET,
@@ -444,7 +449,8 @@ struct tvcard bttv_tvcards[] = {
444 .svhs = 2, 449 .svhs = 2,
445 .gpiomask = 0xc00, 450 .gpiomask = 0xc00,
446 .muxsel = { 2, 3, 1, 1 }, 451 .muxsel = { 2, 3, 1, 1 },
447 .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0 }, 452 .gpiomux = { 0, 0xc00, 0x800, 0x400 },
453 .gpiomute = 0xc00,
448 .needs_tvaudio = 1, 454 .needs_tvaudio = 1,
449 .pll = PLL_28, 455 .pll = PLL_28,
450 .tuner_type = -1, 456 .tuner_type = -1,
@@ -459,7 +465,7 @@ struct tvcard bttv_tvcards[] = {
459 .svhs = 2, 465 .svhs = 2,
460 .gpiomask = 3, 466 .gpiomask = 3,
461 .muxsel = { 2, 3, 1, 1 }, 467 .muxsel = { 2, 3, 1, 1 },
462 .audiomux = { 1, 1, 2, 3, 0 }, 468 .gpiomux = { 1, 1, 2, 3 },
463 .needs_tvaudio = 0, 469 .needs_tvaudio = 0,
464 .pll = PLL_28, 470 .pll = PLL_28,
465 .tuner_type = TUNER_TEMIC_PAL, 471 .tuner_type = TUNER_TEMIC_PAL,
@@ -474,7 +480,8 @@ struct tvcard bttv_tvcards[] = {
474 .svhs = 2, 480 .svhs = 2,
475 .gpiomask = 0x0f, /* old: 7 */ 481 .gpiomask = 0x0f, /* old: 7 */
476 .muxsel = { 2, 0, 1, 1 }, 482 .muxsel = { 2, 0, 1, 1 },
477 .audiomux = { 0, 1, 2, 3, 4 }, 483 .gpiomux = { 0, 1, 2, 3 },
484 .gpiomute = 4,
478 .needs_tvaudio = 1, 485 .needs_tvaudio = 1,
479 .pll = PLL_28, 486 .pll = PLL_28,
480 .tuner_type = -1, 487 .tuner_type = -1,
@@ -489,7 +496,8 @@ struct tvcard bttv_tvcards[] = {
489 .svhs = 2, 496 .svhs = 2,
490 .gpiomask = 0x3014f, 497 .gpiomask = 0x3014f,
491 .muxsel = { 2, 3, 1, 1 }, 498 .muxsel = { 2, 3, 1, 1 },
492 .audiomux = { 0x20001,0x10001, 0, 0,10 }, 499 .gpiomux = { 0x20001,0x10001, 0, 0 },
500 .gpiomute = 10,
493 .needs_tvaudio = 1, 501 .needs_tvaudio = 1,
494 .tuner_type = -1, 502 .tuner_type = -1,
495 .tuner_addr = ADDR_UNSET, 503 .tuner_addr = ADDR_UNSET,
@@ -505,7 +513,7 @@ struct tvcard bttv_tvcards[] = {
505 .svhs = 2, 513 .svhs = 2,
506 .gpiomask = 15, 514 .gpiomask = 15,
507 .muxsel = { 2, 3, 1, 1 }, 515 .muxsel = { 2, 3, 1, 1 },
508 .audiomux = { 13, 14, 11, 7, 0, 0 }, 516 .gpiomux = { 13, 14, 11, 7 },
509 .needs_tvaudio = 1, 517 .needs_tvaudio = 1,
510 .tuner_type = -1, 518 .tuner_type = -1,
511 .tuner_addr = ADDR_UNSET, 519 .tuner_addr = ADDR_UNSET,
@@ -519,7 +527,7 @@ struct tvcard bttv_tvcards[] = {
519 .svhs = 2, 527 .svhs = 2,
520 .gpiomask = 15, 528 .gpiomask = 15,
521 .muxsel = { 2, 3, 1, 1 }, 529 .muxsel = { 2, 3, 1, 1 },
522 .audiomux = { 13, 14, 11, 7, 0, 0 }, 530 .gpiomux = { 13, 14, 11, 7 },
523 .needs_tvaudio = 1, 531 .needs_tvaudio = 1,
524 .msp34xx_alt = 1, 532 .msp34xx_alt = 1,
525 .pll = PLL_28, 533 .pll = PLL_28,
@@ -537,7 +545,8 @@ struct tvcard bttv_tvcards[] = {
537 .svhs = 2, 545 .svhs = 2,
538 .gpiomask = 7, 546 .gpiomask = 7,
539 .muxsel = { 2, 3, 1, 1 }, 547 .muxsel = { 2, 3, 1, 1 },
540 .audiomux = { 0, 2, 1, 3, 4 }, /* old: {0, 1, 2, 3, 4} */ 548 .gpiomux = { 0, 2, 1, 3 }, /* old: {0, 1, 2, 3, 4} */
549 .gpiomute = 4,
541 .needs_tvaudio = 1, 550 .needs_tvaudio = 1,
542 .pll = PLL_28, 551 .pll = PLL_28,
543 .tuner_type = -1, 552 .tuner_type = -1,
@@ -552,7 +561,8 @@ struct tvcard bttv_tvcards[] = {
552 .svhs = 2, 561 .svhs = 2,
553 .gpiomask = 15, 562 .gpiomask = 15,
554 .muxsel = { 2, 3, 1, 1 }, 563 .muxsel = { 2, 3, 1, 1 },
555 .audiomux = { 0 , 0, 1 , 0, 10 }, 564 .gpiomux = { 0, 0, 1, 0 },
565 .gpiomute = 10,
556 .needs_tvaudio = 1, 566 .needs_tvaudio = 1,
557 .tuner_type = -1, 567 .tuner_type = -1,
558 .tuner_addr = ADDR_UNSET, 568 .tuner_addr = ADDR_UNSET,
@@ -570,10 +580,11 @@ struct tvcard bttv_tvcards[] = {
570 .muxsel = { 2, 3, 1, 1 }, 580 .muxsel = { 2, 3, 1, 1 },
571 #if 0 581 #if 0
572 /* old */ 582 /* old */
573 .audiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x002000, 0 }, 583 .gpiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x002000 },
574 #else 584 #else
575 /* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */ 585 /* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */
576 .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, 586 .gpiomux = { 0x001e00, 0, 0x018000, 0x014000 },
587 .gpiomute = 0x002000,
577 #endif 588 #endif
578 .needs_tvaudio = 1, 589 .needs_tvaudio = 1,
579 .pll = PLL_28, 590 .pll = PLL_28,
@@ -587,7 +598,8 @@ struct tvcard bttv_tvcards[] = {
587 .svhs = 2, 598 .svhs = 2,
588 .gpiomask = 0x8300f8, 599 .gpiomask = 0x8300f8,
589 .muxsel = { 2, 3, 1, 1,0 }, 600 .muxsel = { 2, 3, 1, 1,0 },
590 .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007 }, 601 .gpiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007 },
602 .gpiomute = 0xcfa007,
591 .needs_tvaudio = 1, 603 .needs_tvaudio = 1,
592 .tuner_type = -1, 604 .tuner_type = -1,
593 .tuner_addr = ADDR_UNSET, 605 .tuner_addr = ADDR_UNSET,
@@ -603,7 +615,7 @@ struct tvcard bttv_tvcards[] = {
603 .svhs = 2, 615 .svhs = 2,
604 .gpiomask = 0, 616 .gpiomask = 0,
605 .muxsel = { 2, 3, 1, 1 }, 617 .muxsel = { 2, 3, 1, 1 },
606 .audiomux = { 1, 0, 0, 0, 0 }, 618 .gpiomux = { 1, 0, 0, 0 },
607 .needs_tvaudio = 1, 619 .needs_tvaudio = 1,
608 .tuner_type = -1, 620 .tuner_type = -1,
609 .tuner_addr = ADDR_UNSET, 621 .tuner_addr = ADDR_UNSET,
@@ -617,7 +629,7 @@ struct tvcard bttv_tvcards[] = {
617 .svhs = -1, 629 .svhs = -1,
618 .gpiomask = 0x8dff00, 630 .gpiomask = 0x8dff00,
619 .muxsel = { 2, 3, 1, 1 }, 631 .muxsel = { 2, 3, 1, 1 },
620 .audiomux = { 0 }, 632 .gpiomux = { 0 },
621 .no_msp34xx = 1, 633 .no_msp34xx = 1,
622 .tuner_type = -1, 634 .tuner_type = -1,
623 .tuner_addr = ADDR_UNSET, 635 .tuner_addr = ADDR_UNSET,
@@ -644,7 +656,8 @@ struct tvcard bttv_tvcards[] = {
644 .svhs = 2, 656 .svhs = 2,
645 .gpiomask = 0x1800, 657 .gpiomask = 0x1800,
646 .muxsel = { 2, 3, 1, 1 }, 658 .muxsel = { 2, 3, 1, 1 },
647 .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800 }, 659 .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
660 .gpiomute = 0x1800,
648 .pll = PLL_28, 661 .pll = PLL_28,
649 .tuner_type = TUNER_PHILIPS_PAL_I, 662 .tuner_type = TUNER_PHILIPS_PAL_I,
650 .tuner_addr = ADDR_UNSET, 663 .tuner_addr = ADDR_UNSET,
@@ -658,7 +671,8 @@ struct tvcard bttv_tvcards[] = {
658 .svhs = 2, 671 .svhs = 2,
659 .gpiomask = 0xc00, 672 .gpiomask = 0xc00,
660 .muxsel = { 2, 3, 1, 1 }, 673 .muxsel = { 2, 3, 1, 1 },
661 .audiomux = { 0, 1, 0x800, 0x400, 0xc00, 0 }, 674 .gpiomux = { 0, 1, 0x800, 0x400 },
675 .gpiomute = 0xc00,
662 .needs_tvaudio = 1, 676 .needs_tvaudio = 1,
663 .pll = PLL_28, 677 .pll = PLL_28,
664 .tuner_type = -1, 678 .tuner_type = -1,
@@ -674,7 +688,7 @@ struct tvcard bttv_tvcards[] = {
674 .gpiomask = 7, 688 .gpiomask = 7,
675 .muxsel = { 2, 3, -1 }, 689 .muxsel = { 2, 3, -1 },
676 .digital_mode = DIGITAL_MODE_CAMERA, 690 .digital_mode = DIGITAL_MODE_CAMERA,
677 .audiomux = { 0, 0, 0, 0, 0 }, 691 .gpiomux = { 0, 0, 0, 0 },
678 .no_msp34xx = 1, 692 .no_msp34xx = 1,
679 .pll = PLL_28, 693 .pll = PLL_28,
680 .tuner_type = TUNER_ALPS_TSBB5_PAL_I, 694 .tuner_type = TUNER_ALPS_TSBB5_PAL_I,
@@ -691,7 +705,8 @@ struct tvcard bttv_tvcards[] = {
691 .svhs = 2, 705 .svhs = 2,
692 .gpiomask = 0xe00, 706 .gpiomask = 0xe00,
693 .muxsel = { 2, 3, 1, 1 }, 707 .muxsel = { 2, 3, 1, 1 },
694 .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00 }, 708 .gpiomux = {0x400, 0x400, 0x400, 0x400 },
709 .gpiomute = 0xc00,
695 .needs_tvaudio = 1, 710 .needs_tvaudio = 1,
696 .pll = PLL_28, 711 .pll = PLL_28,
697 .tuner_type = -1, 712 .tuner_type = -1,
@@ -707,7 +722,8 @@ struct tvcard bttv_tvcards[] = {
707 .svhs = 2, 722 .svhs = 2,
708 .gpiomask = 0x1f0fff, 723 .gpiomask = 0x1f0fff,
709 .muxsel = { 2, 3, 1, 1 }, 724 .muxsel = { 2, 3, 1, 1 },
710 .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000 }, 725 .gpiomux = { 0x20000, 0x30000, 0x10000, 0 },
726 .gpiomute = 0x40000,
711 .needs_tvaudio = 0, 727 .needs_tvaudio = 0,
712 .tuner_type = TUNER_PHILIPS_PAL, 728 .tuner_type = TUNER_PHILIPS_PAL,
713 .tuner_addr = ADDR_UNSET, 729 .tuner_addr = ADDR_UNSET,
@@ -722,7 +738,8 @@ struct tvcard bttv_tvcards[] = {
722 .svhs = 3, 738 .svhs = 3,
723 .gpiomask = 7, 739 .gpiomask = 7,
724 .muxsel = { 2, 0, 1, 1 }, 740 .muxsel = { 2, 0, 1, 1 },
725 .audiomux = { 0, 1, 2, 3, 4 }, 741 .gpiomux = { 0, 1, 2, 3 },
742 .gpiomute = 4,
726 .needs_tvaudio = 1, 743 .needs_tvaudio = 1,
727 .tuner_type = -1, 744 .tuner_type = -1,
728 .tuner_addr = ADDR_UNSET, 745 .tuner_addr = ADDR_UNSET,
@@ -736,7 +753,8 @@ struct tvcard bttv_tvcards[] = {
736 .svhs = 2, 753 .svhs = 2,
737 .gpiomask = 0x1800, 754 .gpiomask = 0x1800,
738 .muxsel = { 2, 3, 1, 1 }, 755 .muxsel = { 2, 3, 1, 1 },
739 .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800 }, 756 .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
757 .gpiomute = 0x1800,
740 .pll = PLL_28, 758 .pll = PLL_28,
741 .tuner_type = TUNER_PHILIPS_SECAM, 759 .tuner_type = TUNER_PHILIPS_SECAM,
742 .tuner_addr = ADDR_UNSET, 760 .tuner_addr = ADDR_UNSET,
@@ -752,7 +770,8 @@ struct tvcard bttv_tvcards[] = {
752 .svhs = 2, 770 .svhs = 2,
753 .gpiomask = 0x1f0fff, 771 .gpiomask = 0x1f0fff,
754 .muxsel = { 2, 3, 1, 1 }, 772 .muxsel = { 2, 3, 1, 1 },
755 .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000 }, 773 .gpiomux = { 0x20000, 0x30000, 0x10000, 0x00000 },
774 .gpiomute = 0x40000,
756 .needs_tvaudio = 0, 775 .needs_tvaudio = 0,
757 .tuner_type = TUNER_PHILIPS_PAL, 776 .tuner_type = TUNER_PHILIPS_PAL,
758 .tuner_addr = ADDR_UNSET, 777 .tuner_addr = ADDR_UNSET,
@@ -799,7 +818,7 @@ struct tvcard bttv_tvcards[] = {
799 .svhs = 1, /* was: 4 */ 818 .svhs = 1, /* was: 4 */
800 .gpiomask = 0, 819 .gpiomask = 0,
801 .muxsel = { 2, 3, 1, 0, 0}, 820 .muxsel = { 2, 3, 1, 0, 0},
802 .audiomux = { 0 }, 821 .gpiomux = { 0 },
803 .needs_tvaudio = 1, 822 .needs_tvaudio = 1,
804 .tuner_type = -1, 823 .tuner_type = -1,
805 .tuner_addr = ADDR_UNSET, 824 .tuner_addr = ADDR_UNSET,
@@ -815,7 +834,8 @@ struct tvcard bttv_tvcards[] = {
815 .svhs = 2, 834 .svhs = 2,
816 .gpiomask = 0x1800, /* 0x8dfe00 */ 835 .gpiomask = 0x1800, /* 0x8dfe00 */
817 .muxsel = { 2, 3, 1, 1 }, 836 .muxsel = { 2, 3, 1, 1 },
818 .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, 837 .gpiomux = { 0, 0x0800, 0x1000, 0x1000 },
838 .gpiomute = 0x1800,
819 .pll = PLL_28, 839 .pll = PLL_28,
820 .tuner_type = -1, 840 .tuner_type = -1,
821 .tuner_addr = ADDR_UNSET, 841 .tuner_addr = ADDR_UNSET,
@@ -829,7 +849,7 @@ struct tvcard bttv_tvcards[] = {
829 .svhs = 3, 849 .svhs = 3,
830 .gpiomask = 1, 850 .gpiomask = 1,
831 .muxsel = { 2, 3, 1, 1 }, 851 .muxsel = { 2, 3, 1, 1 },
832 .audiomux = { 1, 0, 0, 0, 0 }, 852 .gpiomux = { 1, 0, 0, 0 },
833 .pll = PLL_28, 853 .pll = PLL_28,
834 .tuner_type = TUNER_PHILIPS_PAL, 854 .tuner_type = TUNER_PHILIPS_PAL,
835 .tuner_addr = ADDR_UNSET, 855 .tuner_addr = ADDR_UNSET,
@@ -845,7 +865,7 @@ struct tvcard bttv_tvcards[] = {
845 .svhs = 2, 865 .svhs = 2,
846 .gpiomask = 0, 866 .gpiomask = 0,
847 .muxsel = { 2, 3, 1, 1 }, 867 .muxsel = { 2, 3, 1, 1 },
848 .audiomux = { 0 }, 868 .gpiomux = { 0 },
849 .needs_tvaudio = 0, 869 .needs_tvaudio = 0,
850 .tuner_type = 4, 870 .tuner_type = 4,
851 .tuner_addr = ADDR_UNSET, 871 .tuner_addr = ADDR_UNSET,
@@ -859,7 +879,8 @@ struct tvcard bttv_tvcards[] = {
859 .svhs = 2, 879 .svhs = 2,
860 .gpiomask = 0xffff00, 880 .gpiomask = 0xffff00,
861 .muxsel = { 2, 3, 1, 1 }, 881 .muxsel = { 2, 3, 1, 1 },
862 .audiomux = { 0x500, 0, 0x300, 0x900, 0x900 }, 882 .gpiomux = { 0x500, 0, 0x300, 0x900 },
883 .gpiomute = 0x900,
863 .needs_tvaudio = 1, 884 .needs_tvaudio = 1,
864 .pll = PLL_28, 885 .pll = PLL_28,
865 .tuner_type = TUNER_PHILIPS_PAL, 886 .tuner_type = TUNER_PHILIPS_PAL,
@@ -875,11 +896,12 @@ struct tvcard bttv_tvcards[] = {
875 .muxsel = { 2, 3, 1, 1, 0 }, /* TV, CVid, SVid, CVid over SVid connector */ 896 .muxsel = { 2, 3, 1, 1, 0 }, /* TV, CVid, SVid, CVid over SVid connector */
876 #if 0 897 #if 0
877 .gpiomask = 0xc33000, 898 .gpiomask = 0xc33000,
878 .audiomux = { 0x422000,0x1000,0x0000,0x620000,0x800000 }, 899 .gpiomux = { 0x422000,0x1000,0x0000,0x620000,0x800000 },
879 #else 900 #else
880 /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */ 901 /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */
881 .gpiomask = 0xb33000, 902 .gpiomask = 0xb33000,
882 .audiomux = { 0x122000,0x1000,0x0000,0x620000,0x800000 }, 903 .gpiomux = { 0x122000,0x1000,0x0000,0x620000 },
904 .gpiomute = 0x800000,
883 #endif 905 #endif
884 /* Audio Routing for "WinFast 2000 XP" (no tv stereo !) 906 /* Audio Routing for "WinFast 2000 XP" (no tv stereo !)
885 gpio23 -- hef4052:nEnable (0x800000) 907 gpio23 -- hef4052:nEnable (0x800000)
@@ -909,7 +931,8 @@ struct tvcard bttv_tvcards[] = {
909 .svhs = 2, 931 .svhs = 2,
910 .gpiomask = 0x1800, 932 .gpiomask = 0x1800,
911 .muxsel = { 2, 3, 1, 1 }, 933 .muxsel = { 2, 3, 1, 1 },
912 .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800 }, 934 .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
935 .gpiomute = 0x1800,
913 .pll = PLL_28, 936 .pll = PLL_28,
914 .tuner_type = -1, 937 .tuner_type = -1,
915 .tuner_addr = ADDR_UNSET, 938 .tuner_addr = ADDR_UNSET,
@@ -925,7 +948,8 @@ struct tvcard bttv_tvcards[] = {
925 .svhs = 2, 948 .svhs = 2,
926 .gpiomask = 0x1800, 949 .gpiomask = 0x1800,
927 .muxsel = { 2, 3, 1, 1 }, 950 .muxsel = { 2, 3, 1, 1 },
928 .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, 951 .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
952 .gpiomute = 0x1800,
929 .pll = PLL_28, 953 .pll = PLL_28,
930 .tuner_type = -1, 954 .tuner_type = -1,
931 .tuner_addr = ADDR_UNSET, 955 .tuner_addr = ADDR_UNSET,
@@ -940,7 +964,8 @@ struct tvcard bttv_tvcards[] = {
940 .svhs = 2, 964 .svhs = 2,
941 .gpiomask = 0xff, 965 .gpiomask = 0xff,
942 .muxsel = { 2, 3, 1, 1 }, 966 .muxsel = { 2, 3, 1, 1 },
943 .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, 967 .gpiomux = { 0x21, 0x20, 0x24, 0x2c },
968 .gpiomute = 0x29,
944 .no_msp34xx = 1, 969 .no_msp34xx = 1,
945 .pll = PLL_28, 970 .pll = PLL_28,
946 .tuner_type = -1, 971 .tuner_type = -1,
@@ -955,7 +980,8 @@ struct tvcard bttv_tvcards[] = {
955 .svhs = 2, 980 .svhs = 2,
956 .gpiomask = 0x551e00, 981 .gpiomask = 0x551e00,
957 .muxsel = { 2, 3, 1, 0 }, 982 .muxsel = { 2, 3, 1, 0 },
958 .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, 983 .gpiomux = { 0x551400, 0x551200, 0, 0 },
984 .gpiomute = 0x551c00,
959 .needs_tvaudio = 1, 985 .needs_tvaudio = 1,
960 .pll = PLL_28, 986 .pll = PLL_28,
961 .tuner_type = 1, 987 .tuner_type = 1,
@@ -971,7 +997,8 @@ struct tvcard bttv_tvcards[] = {
971 .svhs = 2, 997 .svhs = 2,
972 .gpiomask = 0x03000F, 998 .gpiomask = 0x03000F,
973 .muxsel = { 2, 3, 1, 1 }, 999 .muxsel = { 2, 3, 1, 1 },
974 .audiomux = { 2, 0xd0001, 0, 0, 1 }, 1000 .gpiomux = { 2, 0xd0001, 0, 0 },
1001 .gpiomute = 1,
975 .needs_tvaudio = 0, 1002 .needs_tvaudio = 0,
976 .pll = PLL_28, 1003 .pll = PLL_28,
977 .tuner_type = -1, 1004 .tuner_type = -1,
@@ -988,7 +1015,8 @@ struct tvcard bttv_tvcards[] = {
988 .svhs = 2, 1015 .svhs = 2,
989 .gpiomask = 7, 1016 .gpiomask = 7,
990 .muxsel = { 2, 3, 1, 1 }, 1017 .muxsel = { 2, 3, 1, 1 },
991 .audiomux = { 4, 0, 2, 3, 1 }, 1018 .gpiomux = { 4, 0, 2, 3 },
1019 .gpiomute = 1,
992 .no_msp34xx = 1, 1020 .no_msp34xx = 1,
993 .needs_tvaudio = 1, 1021 .needs_tvaudio = 1,
994 .tuner_type = TUNER_PHILIPS_NTSC, 1022 .tuner_type = TUNER_PHILIPS_NTSC,
@@ -1005,7 +1033,7 @@ struct tvcard bttv_tvcards[] = {
1005 .svhs = 2, 1033 .svhs = 2,
1006 .gpiomask = 15, 1034 .gpiomask = 15,
1007 .muxsel = { 2, 3, 1, 1 }, 1035 .muxsel = { 2, 3, 1, 1 },
1008 .audiomux = { 13, 4, 11, 7, 0, 0 }, 1036 .gpiomux = { 13, 4, 11, 7 },
1009 .needs_tvaudio = 1, 1037 .needs_tvaudio = 1,
1010 .pll = PLL_28, 1038 .pll = PLL_28,
1011 .tuner_type = -1, 1039 .tuner_type = -1,
@@ -1022,7 +1050,7 @@ struct tvcard bttv_tvcards[] = {
1022 .svhs = 2, 1050 .svhs = 2,
1023 .gpiomask = 0, 1051 .gpiomask = 0,
1024 .muxsel = { 2, 3, 1, 1}, 1052 .muxsel = { 2, 3, 1, 1},
1025 .audiomux = { 0, 0, 0, 0, 0}, 1053 .gpiomux = { 0, 0, 0, 0},
1026 .needs_tvaudio = 1, 1054 .needs_tvaudio = 1,
1027 .no_msp34xx = 1, 1055 .no_msp34xx = 1,
1028 .pll = PLL_28, 1056 .pll = PLL_28,
@@ -1038,7 +1066,8 @@ struct tvcard bttv_tvcards[] = {
1038 .svhs = 2, 1066 .svhs = 2,
1039 .gpiomask = 0xe00b, 1067 .gpiomask = 0xe00b,
1040 .muxsel = { 2, 3, 1, 1 }, 1068 .muxsel = { 2, 3, 1, 1 },
1041 .audiomux = { 0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc }, 1069 .gpiomux = { 0xff9ff6, 0xff9ff6, 0xff1ff7, 0 },
1070 .gpiomute = 0xff3ffc,
1042 .no_msp34xx = 1, 1071 .no_msp34xx = 1,
1043 .tuner_type = -1, 1072 .tuner_type = -1,
1044 .tuner_addr = ADDR_UNSET, 1073 .tuner_addr = ADDR_UNSET,
@@ -1054,7 +1083,8 @@ struct tvcard bttv_tvcards[] = {
1054 .svhs = -1, 1083 .svhs = -1,
1055 .gpiomask = 3, 1084 .gpiomask = 3,
1056 .muxsel = { 2, 3, 1, 1 }, 1085 .muxsel = { 2, 3, 1, 1 },
1057 .audiomux = { 1, 1, 0, 2, 3 }, 1086 .gpiomux = { 1, 1, 0, 2 },
1087 .gpiomute = 3,
1058 .no_msp34xx = 1, 1088 .no_msp34xx = 1,
1059 .pll = PLL_NONE, 1089 .pll = PLL_NONE,
1060 .tuner_type = -1, 1090 .tuner_type = -1,
@@ -1069,7 +1099,7 @@ struct tvcard bttv_tvcards[] = {
1069 .svhs = 3, 1099 .svhs = 3,
1070 .gpiomask = 0, 1100 .gpiomask = 0,
1071 .muxsel = { 2, 3, 1, 0, 0 }, 1101 .muxsel = { 2, 3, 1, 0, 0 },
1072 .audiomux = { 0 }, 1102 .gpiomux = { 0 },
1073 .no_msp34xx = 1, 1103 .no_msp34xx = 1,
1074 .pll = PLL_28, 1104 .pll = PLL_28,
1075 .tuner_type = -1, 1105 .tuner_type = -1,
@@ -1084,7 +1114,8 @@ struct tvcard bttv_tvcards[] = {
1084 .svhs = 2, 1114 .svhs = 2,
1085 .gpiomask = 0xbcf03f, 1115 .gpiomask = 0xbcf03f,
1086 .muxsel = { 2, 3, 1, 1 }, 1116 .muxsel = { 2, 3, 1, 1 },
1087 .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f }, 1117 .gpiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0 },
1118 .gpiomute = 0xbcb03f,
1088 .no_msp34xx = 1, 1119 .no_msp34xx = 1,
1089 .pll = PLL_28, 1120 .pll = PLL_28,
1090 .tuner_type = 21, 1121 .tuner_type = 21,
@@ -1099,7 +1130,8 @@ struct tvcard bttv_tvcards[] = {
1099 .svhs = 2, 1130 .svhs = 2,
1100 .gpiomask = 0x70000, 1131 .gpiomask = 0x70000,
1101 .muxsel = { 2, 3, 1, 1 }, 1132 .muxsel = { 2, 3, 1, 1 },
1102 .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, 1133 .gpiomux = { 0x20000, 0x30000, 0x10000, 0 },
1134 .gpiomute = 0x40000,
1103 .needs_tvaudio = 1, 1135 .needs_tvaudio = 1,
1104 .no_msp34xx = 1, 1136 .no_msp34xx = 1,
1105 .pll = PLL_35, 1137 .pll = PLL_35,
@@ -1118,7 +1150,8 @@ struct tvcard bttv_tvcards[] = {
1118 .svhs = 2, 1150 .svhs = 2,
1119 .gpiomask = 15, 1151 .gpiomask = 15,
1120 .muxsel = { 2, 3, 1, 1 }, 1152 .muxsel = { 2, 3, 1, 1 },
1121 .audiomux = {2,0,0,0,1 }, 1153 .gpiomux = {2,0,0,0 },
1154 .gpiomute = 1,
1122 .needs_tvaudio = 1, 1155 .needs_tvaudio = 1,
1123 .pll = PLL_28, 1156 .pll = PLL_28,
1124 .tuner_type = -1, 1157 .tuner_type = -1,
@@ -1133,7 +1166,7 @@ struct tvcard bttv_tvcards[] = {
1133 .svhs = 2, 1166 .svhs = 2,
1134 .gpiomask = 0x010f00, 1167 .gpiomask = 0x010f00,
1135 .muxsel = {2, 3, 0, 0 }, 1168 .muxsel = {2, 3, 0, 0 },
1136 .audiomux = {0x10000, 0, 0x10000, 0, 0, 0 }, 1169 .gpiomux = {0x10000, 0, 0x10000, 0 },
1137 .no_msp34xx = 1, 1170 .no_msp34xx = 1,
1138 .pll = PLL_28, 1171 .pll = PLL_28,
1139 .tuner_type = TUNER_ALPS_TSHC6_NTSC, 1172 .tuner_type = TUNER_ALPS_TSHC6_NTSC,
@@ -1150,7 +1183,8 @@ struct tvcard bttv_tvcards[] = {
1150 .gpiomask = 0xAA0000, 1183 .gpiomask = 0xAA0000,
1151 .muxsel = { 2,3,1,1,-1 }, 1184 .muxsel = { 2,3,1,1,-1 },
1152 .digital_mode = DIGITAL_MODE_CAMERA, 1185 .digital_mode = DIGITAL_MODE_CAMERA,
1153 .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, 1186 .gpiomux = { 0x20000, 0, 0x80000, 0x80000 },
1187 .gpiomute = 0xa8000,
1154 .no_msp34xx = 1, 1188 .no_msp34xx = 1,
1155 .pll = PLL_28, 1189 .pll = PLL_28,
1156 .tuner_type = TUNER_PHILIPS_PAL_I, 1190 .tuner_type = TUNER_PHILIPS_PAL_I,
@@ -1175,7 +1209,8 @@ struct tvcard bttv_tvcards[] = {
1175 .svhs = 2, 1209 .svhs = 2,
1176 .gpiomask = 7, 1210 .gpiomask = 7,
1177 .muxsel = { 2, 0, 1, 1 }, 1211 .muxsel = { 2, 0, 1, 1 },
1178 .audiomux = { 0, 1, 2, 3, 4 }, 1212 .gpiomux = { 0, 1, 2, 3 },
1213 .gpiomute = 4,
1179 .pll = PLL_28, 1214 .pll = PLL_28,
1180 .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */, 1215 .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */,
1181 .tuner_addr = ADDR_UNSET, 1216 .tuner_addr = ADDR_UNSET,
@@ -1192,7 +1227,8 @@ struct tvcard bttv_tvcards[] = {
1192 .svhs = 3, 1227 .svhs = 3,
1193 .gpiomask = 0x03000F, 1228 .gpiomask = 0x03000F,
1194 .muxsel = { 2, 3, 1, 1 }, 1229 .muxsel = { 2, 3, 1, 1 },
1195 .audiomux = { 1, 0xd0001, 0, 0, 10 }, 1230 .gpiomux = { 1, 0xd0001, 0, 0 },
1231 .gpiomute = 10,
1196 /* sound path (5 sources): 1232 /* sound path (5 sources):
1197 MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable) 1233 MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable)
1198 0= ext. Audio IN 1234 0= ext. Audio IN
@@ -1218,7 +1254,8 @@ struct tvcard bttv_tvcards[] = {
1218 .svhs = 2, 1254 .svhs = 2,
1219 .gpiomask = 0x1c, 1255 .gpiomask = 0x1c,
1220 .muxsel = { 2, 3, 1, 1 }, 1256 .muxsel = { 2, 3, 1, 1 },
1221 .audiomux = { 0, 0, 0x10, 8, 4 }, 1257 .gpiomux = { 0, 0, 0x10, 8 },
1258 .gpiomute = 4,
1222 .needs_tvaudio = 1, 1259 .needs_tvaudio = 1,
1223 .pll = PLL_28, 1260 .pll = PLL_28,
1224 .tuner_type = TUNER_PHILIPS_PAL, 1261 .tuner_type = TUNER_PHILIPS_PAL,
@@ -1230,7 +1267,7 @@ struct tvcard bttv_tvcards[] = {
1230 /* Tim Röstermundt <rosterm@uni-muenster.de> 1267 /* Tim Röstermundt <rosterm@uni-muenster.de>
1231 in de.comp.os.unix.linux.hardware: 1268 in de.comp.os.unix.linux.hardware:
1232 options bttv card=0 pll=1 radio=1 gpiomask=0x18e0 1269 options bttv card=0 pll=1 radio=1 gpiomask=0x18e0
1233 audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff 1270 gpiomux =0x44c71f,0x44d71f,0,0x44d71f,0x44dfff
1234 options tuner type=5 */ 1271 options tuner type=5 */
1235 .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", 1272 .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]",
1236 .video_inputs = 4, 1273 .video_inputs = 4,
@@ -1239,7 +1276,8 @@ struct tvcard bttv_tvcards[] = {
1239 .svhs = 2, 1276 .svhs = 2,
1240 .gpiomask = 0x18e0, 1277 .gpiomask = 0x18e0,
1241 .muxsel = { 2, 3, 1, 1 }, 1278 .muxsel = { 2, 3, 1, 1 },
1242 .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, 1279 .gpiomux = { 0x0000,0x0800,0x1000,0x1000 },
1280 .gpiomute = 0x18e0,
1243 /* For cards with tda9820/tda9821: 1281 /* For cards with tda9820/tda9821:
1244 0x0000: Tuner normal stereo 1282 0x0000: Tuner normal stereo
1245 0x0080: Tuner A2 SAP (second audio program = Zweikanalton) 1283 0x0080: Tuner A2 SAP (second audio program = Zweikanalton)
@@ -1259,7 +1297,8 @@ struct tvcard bttv_tvcards[] = {
1259 .svhs = 2, 1297 .svhs = 2,
1260 .gpiomask = 0xF, 1298 .gpiomask = 0xF,
1261 .muxsel = { 2, 3, 1, 0 }, 1299 .muxsel = { 2, 3, 1, 0 },
1262 .audiomux = { 2, 0, 0, 0, 10 }, 1300 .gpiomux = { 2, 0, 0, 0 },
1301 .gpiomute = 10,
1263 .needs_tvaudio = 0, 1302 .needs_tvaudio = 0,
1264 .pll = PLL_28, 1303 .pll = PLL_28,
1265 .tuner_type = TUNER_TEMIC_PAL, 1304 .tuner_type = TUNER_TEMIC_PAL,
@@ -1277,7 +1316,8 @@ struct tvcard bttv_tvcards[] = {
1277 .svhs = 2, 1316 .svhs = 2,
1278 .gpiomask = 0x1800, 1317 .gpiomask = 0x1800,
1279 .muxsel = { 2, 3, 1, 1 }, 1318 .muxsel = { 2, 3, 1, 1 },
1280 .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, 1319 .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
1320 .gpiomute = 0x1800,
1281 .pll = PLL_28, 1321 .pll = PLL_28,
1282 .tuner_type = 5, 1322 .tuner_type = 5,
1283 .tuner_addr = ADDR_UNSET, 1323 .tuner_addr = ADDR_UNSET,
@@ -1294,7 +1334,7 @@ struct tvcard bttv_tvcards[] = {
1294 .svhs = 1, 1334 .svhs = 1,
1295 .gpiomask = 0, 1335 .gpiomask = 0,
1296 .muxsel = { 3, 1 }, 1336 .muxsel = { 3, 1 },
1297 .audiomux = { 0 }, 1337 .gpiomux = { 0 },
1298 .needs_tvaudio = 0, 1338 .needs_tvaudio = 0,
1299 .no_msp34xx = 1, 1339 .no_msp34xx = 1,
1300 .pll = PLL_35, 1340 .pll = PLL_35,
@@ -1311,7 +1351,8 @@ struct tvcard bttv_tvcards[] = {
1311 .svhs = 2, 1351 .svhs = 2,
1312 .gpiomask = 0xe00, 1352 .gpiomask = 0xe00,
1313 .muxsel = { 2, 3, 1, 1}, 1353 .muxsel = { 2, 3, 1, 1},
1314 .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, 1354 .gpiomux = { 0x400, 0x400, 0x400, 0x400 },
1355 .gpiomute = 0x800,
1315 .needs_tvaudio = 1, 1356 .needs_tvaudio = 1,
1316 .pll = PLL_28, 1357 .pll = PLL_28,
1317 .tuner_type = TUNER_TEMIC_4036FY5_NTSC, 1358 .tuner_type = TUNER_TEMIC_4036FY5_NTSC,
@@ -1327,7 +1368,8 @@ struct tvcard bttv_tvcards[] = {
1327 .svhs = 2, 1368 .svhs = 2,
1328 .gpiomask = 0x03000F, 1369 .gpiomask = 0x03000F,
1329 .muxsel = { 2, 3, 1, 0 }, 1370 .muxsel = { 2, 3, 1, 0 },
1330 .audiomux = { 2, 0, 0, 0, 1 }, 1371 .gpiomux = { 2, 0, 0, 0 },
1372 .gpiomute = 1,
1331 .pll = PLL_28, 1373 .pll = PLL_28,
1332 .tuner_type = 0, 1374 .tuner_type = 0,
1333 .tuner_addr = ADDR_UNSET, 1375 .tuner_addr = ADDR_UNSET,
@@ -1344,7 +1386,8 @@ struct tvcard bttv_tvcards[] = {
1344 .svhs = -1, 1386 .svhs = -1,
1345 .gpiomask = 11, 1387 .gpiomask = 11,
1346 .muxsel = { 2, 3, 1, 1 }, 1388 .muxsel = { 2, 3, 1, 1 },
1347 .audiomux = { 2, 0, 0, 1, 8 }, 1389 .gpiomux = { 2, 0, 0, 1 },
1390 .gpiomute = 8,
1348 .pll = PLL_35, 1391 .pll = PLL_35,
1349 .tuner_type = TUNER_TEMIC_PAL, 1392 .tuner_type = TUNER_TEMIC_PAL,
1350 .tuner_addr = ADDR_UNSET, 1393 .tuner_addr = ADDR_UNSET,
@@ -1359,7 +1402,7 @@ struct tvcard bttv_tvcards[] = {
1359 .svhs = 1, 1402 .svhs = 1,
1360 .gpiomask = 0xF, 1403 .gpiomask = 0xF,
1361 .muxsel = { 2, 2 }, 1404 .muxsel = { 2, 2 },
1362 .audiomux = { }, 1405 .gpiomux = { },
1363 .no_msp34xx = 1, 1406 .no_msp34xx = 1,
1364 .needs_tvaudio = 0, 1407 .needs_tvaudio = 0,
1365 .pll = PLL_28, 1408 .pll = PLL_28,
@@ -1378,7 +1421,8 @@ struct tvcard bttv_tvcards[] = {
1378 .svhs = 2, 1421 .svhs = 2,
1379 .gpiomask = 0xFF, 1422 .gpiomask = 0xFF,
1380 .muxsel = { 2, 3, 1, 0 }, 1423 .muxsel = { 2, 3, 1, 0 },
1381 .audiomux = { 1, 0, 4, 4, 9 }, 1424 .gpiomux = { 1, 0, 4, 4 },
1425 .gpiomute = 9,
1382 .needs_tvaudio = 0, 1426 .needs_tvaudio = 0,
1383 .pll = PLL_28, 1427 .pll = PLL_28,
1384 .tuner_type = TUNER_PHILIPS_PAL, 1428 .tuner_type = TUNER_PHILIPS_PAL,
@@ -1394,7 +1438,8 @@ struct tvcard bttv_tvcards[] = {
1394 .svhs = 2, 1438 .svhs = 2,
1395 .gpiomask = 0xf03f, 1439 .gpiomask = 0xf03f,
1396 .muxsel = { 2, 3, 1, 0 }, 1440 .muxsel = { 2, 3, 1, 0 },
1397 .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe }, 1441 .gpiomux = { 0xbffe, 0, 0xbfff, 0 },
1442 .gpiomute = 0xbffe,
1398 .pll = PLL_28, 1443 .pll = PLL_28,
1399 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, 1444 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
1400 .tuner_addr = ADDR_UNSET, 1445 .tuner_addr = ADDR_UNSET,
@@ -1411,7 +1456,7 @@ struct tvcard bttv_tvcards[] = {
1411 .svhs = -1, 1456 .svhs = -1,
1412 .gpiomask = 1, 1457 .gpiomask = 1,
1413 .muxsel = { 2, 3, 0, 1 }, 1458 .muxsel = { 2, 3, 0, 1 },
1414 .audiomux = { 0, 0, 1, 0, 0 }, 1459 .gpiomux = { 0, 0, 1, 0 },
1415 .no_msp34xx = 1, 1460 .no_msp34xx = 1,
1416 .pll = PLL_28, 1461 .pll = PLL_28,
1417 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, 1462 .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
@@ -1430,7 +1475,8 @@ struct tvcard bttv_tvcards[] = {
1430 /* Radio changed from 1e80 to 0x800 to make 1475 /* Radio changed from 1e80 to 0x800 to make
1431 FlyVideo2000S in .hu happy (gm)*/ 1476 FlyVideo2000S in .hu happy (gm)*/
1432 /* -dk-???: set mute=0x1800 for tda9874h daughterboard */ 1477 /* -dk-???: set mute=0x1800 for tda9874h daughterboard */
1433 .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, 1478 .gpiomux = { 0x0000,0x0800,0x1000,0x1000 },
1479 .gpiomute = 0x1800,
1434 .audio_hook = fv2000s_audio, 1480 .audio_hook = fv2000s_audio,
1435 .no_msp34xx = 1, 1481 .no_msp34xx = 1,
1436 .no_tda9875 = 1, 1482 .no_tda9875 = 1,
@@ -1448,7 +1494,8 @@ struct tvcard bttv_tvcards[] = {
1448 .svhs = 2, 1494 .svhs = 2,
1449 .gpiomask = 0xffff00, 1495 .gpiomask = 0xffff00,
1450 .muxsel = { 2, 3, 1, 1 }, 1496 .muxsel = { 2, 3, 1, 1 },
1451 .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900 }, 1497 .gpiomux = { 0x500, 0x500, 0x300, 0x900 },
1498 .gpiomute = 0x900,
1452 .needs_tvaudio = 1, 1499 .needs_tvaudio = 1,
1453 .pll = PLL_28, 1500 .pll = PLL_28,
1454 .tuner_type = TUNER_PHILIPS_PAL, 1501 .tuner_type = TUNER_PHILIPS_PAL,
@@ -1465,7 +1512,7 @@ struct tvcard bttv_tvcards[] = {
1465 .svhs = 2, 1512 .svhs = 2,
1466 .gpiomask = 0x010f00, 1513 .gpiomask = 0x010f00,
1467 .muxsel = {2, 3, 0, 0 }, 1514 .muxsel = {2, 3, 0, 0 },
1468 .audiomux = {0x10000, 0, 0x10000, 0, 0, 0 }, 1515 .gpiomux = {0x10000, 0, 0x10000, 0 },
1469 .no_msp34xx = 1, 1516 .no_msp34xx = 1,
1470 .pll = PLL_28, 1517 .pll = PLL_28,
1471 .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, 1518 .tuner_type = TUNER_SHARP_2U5JF5540_NTSC,
@@ -1486,7 +1533,8 @@ struct tvcard bttv_tvcards[] = {
1486 .gpiomask = 0x4f8a00, 1533 .gpiomask = 0x4f8a00,
1487 /* 0x100000: 1=MSP enabled (0=disable again) 1534 /* 0x100000: 1=MSP enabled (0=disable again)
1488 * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ 1535 * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */
1489 .audiomux = {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, 1536 .gpiomux = {0x947fff, 0x987fff,0x947fff,0x947fff },
1537 .gpiomute = 0x947fff,
1490 /* tvtuner, radio, external,internal, mute, stereo 1538 /* tvtuner, radio, external,internal, mute, stereo
1491 * tuner, Composit, SVid, Composit-on-Svid-adapter */ 1539 * tuner, Composit, SVid, Composit-on-Svid-adapter */
1492 .muxsel = { 2, 3 ,0 ,1 }, 1540 .muxsel = { 2, 3 ,0 ,1 },
@@ -1518,7 +1566,8 @@ struct tvcard bttv_tvcards[] = {
1518 .svhs = 2, 1566 .svhs = 2,
1519 .gpiomask = 15, 1567 .gpiomask = 15,
1520 .muxsel = { 2, 3, 1, 1 }, 1568 .muxsel = { 2, 3, 1, 1 },
1521 .audiomux = { 0, 0, 11, 7, 13, 0 }, /* TV and Radio with same GPIO ! */ 1569 .gpiomux = { 0, 0, 11, 7 }, /* TV and Radio with same GPIO ! */
1570 .gpiomute = 13,
1522 .needs_tvaudio = 1, 1571 .needs_tvaudio = 1,
1523 .pll = PLL_28, 1572 .pll = PLL_28,
1524 .tuner_type = 25, 1573 .tuner_type = 25,
@@ -1557,7 +1606,8 @@ struct tvcard bttv_tvcards[] = {
1557 .svhs = 2, 1606 .svhs = 2,
1558 .gpiomask = 0x3f, 1607 .gpiomask = 0x3f,
1559 .muxsel = { 2, 3, 1, 1 }, 1608 .muxsel = { 2, 3, 1, 1 },
1560 .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, 1609 .gpiomux = { 0x01, 0x00, 0x03, 0x03 },
1610 .gpiomute = 0x09,
1561 .needs_tvaudio = 1, 1611 .needs_tvaudio = 1,
1562 .no_msp34xx = 1, 1612 .no_msp34xx = 1,
1563 .no_tda9875 = 1, 1613 .no_tda9875 = 1,
@@ -1586,7 +1636,7 @@ struct tvcard bttv_tvcards[] = {
1586 .svhs = 4, 1636 .svhs = 4,
1587 .gpiomask = 0, 1637 .gpiomask = 0,
1588 .muxsel = { 2, 3, 1, 0, 0 }, 1638 .muxsel = { 2, 3, 1, 0, 0 },
1589 .audiomux = { 0 }, 1639 .gpiomux = { 0 },
1590 .needs_tvaudio = 0, 1640 .needs_tvaudio = 0,
1591 .tuner_type = -1, 1641 .tuner_type = -1,
1592 .tuner_addr = ADDR_UNSET, 1642 .tuner_addr = ADDR_UNSET,
@@ -1618,7 +1668,8 @@ struct tvcard bttv_tvcards[] = {
1618 .svhs = 2, 1668 .svhs = 2,
1619 .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */ 1669 .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */
1620 .muxsel = { 2, 1, 1, }, 1670 .muxsel = { 2, 1, 1, },
1621 .audiomux = { 0, 1, 2, 2, 4 }, 1671 .gpiomux = { 0, 1, 2, 2 },
1672 .gpiomute = 4,
1622 .needs_tvaudio = 0, 1673 .needs_tvaudio = 0,
1623 .tuner_type = TUNER_PHILIPS_PAL, 1674 .tuner_type = TUNER_PHILIPS_PAL,
1624 .tuner_addr = ADDR_UNSET, 1675 .tuner_addr = ADDR_UNSET,
@@ -1637,7 +1688,8 @@ struct tvcard bttv_tvcards[] = {
1637 .svhs = 2, 1688 .svhs = 2,
1638 .gpiomask = 0x140007, 1689 .gpiomask = 0x140007,
1639 .muxsel = { 2, 3, 1, 1 }, 1690 .muxsel = { 2, 3, 1, 1 },
1640 .audiomux = { 0, 1, 2, 3, 4, 0 }, 1691 .gpiomux = { 0, 1, 2, 3 },
1692 .gpiomute = 4,
1641 .tuner_type = TUNER_PHILIPS_NTSC, 1693 .tuner_type = TUNER_PHILIPS_NTSC,
1642 .tuner_addr = ADDR_UNSET, 1694 .tuner_addr = ADDR_UNSET,
1643 .radio_addr = ADDR_UNSET, 1695 .radio_addr = ADDR_UNSET,
@@ -1651,7 +1703,7 @@ struct tvcard bttv_tvcards[] = {
1651 .svhs = -1, 1703 .svhs = -1,
1652 .gpiomask = 0, 1704 .gpiomask = 0,
1653 .muxsel = { 2, 3, 1, 0 }, 1705 .muxsel = { 2, 3, 1, 0 },
1654 .audiomux = { 0 }, 1706 .gpiomux = { 0 },
1655 .needs_tvaudio = 0, 1707 .needs_tvaudio = 0,
1656 .no_msp34xx = 1, 1708 .no_msp34xx = 1,
1657 .pll = PLL_28, 1709 .pll = PLL_28,
@@ -1667,13 +1719,14 @@ struct tvcard bttv_tvcards[] = {
1667 .svhs = 2, 1719 .svhs = 2,
1668 .gpiomask = 7, 1720 .gpiomask = 7,
1669 .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */ 1721 .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */
1670 .audiomux = { 0 ,0 ,4, 4,4,4},/* Yes, this tuner uses the same audio output for TV and FM radio! 1722 .gpiomux = { 0, 0, 4, 4 },/* Yes, this tuner uses the same audio output for TV and FM radio!
1671 * This card lacks external Audio In, so we mute it on Ext. & Int. 1723 * This card lacks external Audio In, so we mute it on Ext. & Int.
1672 * The PCB can take a sbx1637/sbx1673, wiring unknown. 1724 * The PCB can take a sbx1637/sbx1673, wiring unknown.
1673 * This card lacks PCI subsystem ID, sigh. 1725 * This card lacks PCI subsystem ID, sigh.
1674 * audiomux=1: lower volume, 2+3: mute 1726 * gpiomux =1: lower volume, 2+3: mute
1675 * btwincap uses 0x80000/0x80003 1727 * btwincap uses 0x80000/0x80003
1676 */ 1728 */
1729 .gpiomute = 4,
1677 .needs_tvaudio = 0, 1730 .needs_tvaudio = 0,
1678 .no_msp34xx = 1, 1731 .no_msp34xx = 1,
1679 .pll = PLL_28, 1732 .pll = PLL_28,
@@ -1720,7 +1773,7 @@ struct tvcard bttv_tvcards[] = {
1720 .radio_addr = ADDR_UNSET, 1773 .radio_addr = ADDR_UNSET,
1721 1774
1722 .gpiomask = 7, 1775 .gpiomask = 7,
1723 .audiomux = {7}, 1776 .gpiomux = {7},
1724 }, 1777 },
1725 [BTTV_BOARD_GVBCTV5PCI] = { 1778 [BTTV_BOARD_GVBCTV5PCI] = {
1726 .name = "IODATA GV-BCTV5/PCI", 1779 .name = "IODATA GV-BCTV5/PCI",
@@ -1730,7 +1783,8 @@ struct tvcard bttv_tvcards[] = {
1730 .svhs = 2, 1783 .svhs = 2,
1731 .gpiomask = 0x0f0f80, 1784 .gpiomask = 0x0f0f80,
1732 .muxsel = {2, 3, 1, 0 }, 1785 .muxsel = {2, 3, 1, 0 },
1733 .audiomux = {0x030000, 0x010000, 0, 0, 0x020000, 0}, 1786 .gpiomux = {0x030000, 0x010000, 0, 0 },
1787 .gpiomute = 0x020000,
1734 .no_msp34xx = 1, 1788 .no_msp34xx = 1,
1735 .pll = PLL_28, 1789 .pll = PLL_28,
1736 .tuner_type = TUNER_PHILIPS_NTSC_M, 1790 .tuner_type = TUNER_PHILIPS_NTSC_M,
@@ -1960,7 +2014,7 @@ struct tvcard bttv_tvcards[] = {
1960 .gpiomask = 2, 2014 .gpiomask = 2,
1961 /* TV, Comp1, Composite over SVID con, SVID */ 2015 /* TV, Comp1, Composite over SVID con, SVID */
1962 .muxsel = { 2, 3, 1, 1 }, 2016 .muxsel = { 2, 3, 1, 1 },
1963 .audiomux = { 2, 2, 0, 0, 0 }, 2017 .gpiomux = { 2, 2, 0, 0 },
1964 .pll = PLL_28, 2018 .pll = PLL_28,
1965 .has_radio = 1, 2019 .has_radio = 1,
1966 .tuner_type = TUNER_PHILIPS_PAL, 2020 .tuner_type = TUNER_PHILIPS_PAL,
@@ -1984,7 +2038,8 @@ struct tvcard bttv_tvcards[] = {
1984 .svhs = -1, 2038 .svhs = -1,
1985 .gpiomask = 7, 2039 .gpiomask = 7,
1986 .muxsel = { 2, 3, 1, 1}, 2040 .muxsel = { 2, 3, 1, 1},
1987 .audiomux = { 0, 1, 2, 3, 4}, 2041 .gpiomux = { 0, 1, 2, 3},
2042 .gpiomute = 4,
1988 .needs_tvaudio = 1, 2043 .needs_tvaudio = 1,
1989 .tuner_type = 5, 2044 .tuner_type = 5,
1990 .tuner_addr = ADDR_UNSET, 2045 .tuner_addr = ADDR_UNSET,
@@ -2016,7 +2071,7 @@ struct tvcard bttv_tvcards[] = {
2016 .svhs = -1, 2071 .svhs = -1,
2017 .gpiomask = 0, 2072 .gpiomask = 0,
2018 .muxsel = { 2, 3 }, 2073 .muxsel = { 2, 3 },
2019 .audiomux = { 0 }, 2074 .gpiomux = { 0 },
2020 .needs_tvaudio = 0, 2075 .needs_tvaudio = 0,
2021 .no_msp34xx = 1, 2076 .no_msp34xx = 1,
2022 .pll = PLL_28, 2077 .pll = PLL_28,
@@ -2035,7 +2090,8 @@ struct tvcard bttv_tvcards[] = {
2035 .gpiomask = 0x001e8007, 2090 .gpiomask = 0x001e8007,
2036 .muxsel = { 2, 3, 1, 0 }, 2091 .muxsel = { 2, 3, 1, 0 },
2037 /* Tuner, Radio, external, internal, off, on */ 2092 /* Tuner, Radio, external, internal, off, on */
2038 .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 }, 2093 .gpiomux = { 0x08, 0x0f, 0x0a, 0x08 },
2094 .gpiomute = 0x0f,
2039 .needs_tvaudio = 0, 2095 .needs_tvaudio = 0,
2040 .no_msp34xx = 1, 2096 .no_msp34xx = 1,
2041 .pll = PLL_28, 2097 .pll = PLL_28,
@@ -2152,7 +2208,7 @@ struct tvcard bttv_tvcards[] = {
2152 .svhs = -1, 2208 .svhs = -1,
2153 .gpiomask = 0, 2209 .gpiomask = 0,
2154 .muxsel = { 2, 3, 1, 0 }, 2210 .muxsel = { 2, 3, 1, 0 },
2155 .audiomux = { 0 }, 2211 .gpiomux = { 0 },
2156 .needs_tvaudio = 0, 2212 .needs_tvaudio = 0,
2157 .no_msp34xx = 1, 2213 .no_msp34xx = 1,
2158 .pll = PLL_28, 2214 .pll = PLL_28,
@@ -2169,7 +2225,7 @@ struct tvcard bttv_tvcards[] = {
2169 .svhs = 3, 2225 .svhs = 3,
2170 .gpiomask = 0x00, 2226 .gpiomask = 0x00,
2171 .muxsel = { 2, 3, 1, 0 }, 2227 .muxsel = { 2, 3, 1, 0 },
2172 .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ 2228 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */
2173 .needs_tvaudio = 1, 2229 .needs_tvaudio = 1,
2174 .pll = PLL_28, 2230 .pll = PLL_28,
2175 .tuner_type = -1, 2231 .tuner_type = -1,
@@ -2184,7 +2240,7 @@ struct tvcard bttv_tvcards[] = {
2184 .svhs = 3, 2240 .svhs = 3,
2185 .gpiomask = 0x00, 2241 .gpiomask = 0x00,
2186 .muxsel = { 2, 3, 1, 1 }, 2242 .muxsel = { 2, 3, 1, 1 },
2187 .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ 2243 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */
2188 .needs_tvaudio = 1, 2244 .needs_tvaudio = 1,
2189 .pll = PLL_28, 2245 .pll = PLL_28,
2190 .tuner_type = -1, 2246 .tuner_type = -1,
@@ -2204,7 +2260,7 @@ struct tvcard bttv_tvcards[] = {
2204 via the upper nibble of muxsel. here: used for 2260 via the upper nibble of muxsel. here: used for
2205 xternal video-mux */ 2261 xternal video-mux */
2206 .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 }, 2262 .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 },
2207 .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ 2263 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */
2208 .needs_tvaudio = 1, 2264 .needs_tvaudio = 1,
2209 .pll = PLL_28, 2265 .pll = PLL_28,
2210 .tuner_type = -1, 2266 .tuner_type = -1,
@@ -2222,7 +2278,7 @@ struct tvcard bttv_tvcards[] = {
2222 via the upper nibble of muxsel. here: used for 2278 via the upper nibble of muxsel. here: used for
2223 xternal video-mux */ 2279 xternal video-mux */
2224 .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 }, 2280 .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 },
2225 .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ 2281 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */
2226 .needs_tvaudio = 1, 2282 .needs_tvaudio = 1,
2227 .pll = PLL_28, 2283 .pll = PLL_28,
2228 .tuner_type = -1, 2284 .tuner_type = -1,
@@ -2310,7 +2366,7 @@ struct tvcard bttv_tvcards[] = {
2310 .svhs = 2, 2366 .svhs = 2,
2311 .gpiomask = 3, 2367 .gpiomask = 3,
2312 .muxsel = { 2, 3, 1, 1 }, 2368 .muxsel = { 2, 3, 1, 1 },
2313 .audiomux = { 1, 1, 1, 1, 0 }, 2369 .gpiomux = { 1, 1, 1, 1 },
2314 .needs_tvaudio = 1, 2370 .needs_tvaudio = 1,
2315 .tuner_type = TUNER_PHILIPS_PAL, 2371 .tuner_type = TUNER_PHILIPS_PAL,
2316 .tuner_addr = ADDR_UNSET, 2372 .tuner_addr = ADDR_UNSET,
@@ -2341,7 +2397,8 @@ struct tvcard bttv_tvcards[] = {
2341 .svhs = 2, 2397 .svhs = 2,
2342 .gpiomask = 0x008007, 2398 .gpiomask = 0x008007,
2343 .muxsel = { 2, 3, 0, 0 }, 2399 .muxsel = { 2, 3, 0, 0 },
2344 .audiomux = { 0, 0, 0, 0, 0x000003, 0 }, 2400 .gpiomux = { 0, 0, 0, 0 },
2401 .gpiomute = 0x000003,
2345 .pll = PLL_28, 2402 .pll = PLL_28,
2346 .tuner_type = TUNER_PHILIPS_PAL, 2403 .tuner_type = TUNER_PHILIPS_PAL,
2347 .tuner_addr = ADDR_UNSET, 2404 .tuner_addr = ADDR_UNSET,
@@ -2377,7 +2434,7 @@ struct tvcard bttv_tvcards[] = {
2377 .needs_tvaudio = 0, 2434 .needs_tvaudio = 0,
2378 .gpiomask = 0x68, 2435 .gpiomask = 0x68,
2379 .muxsel = { 2, 3, 1 }, 2436 .muxsel = { 2, 3, 1 },
2380 .audiomux = { 0x68, 0x68, 0x61, 0x61, 0x00 }, 2437 .gpiomux = { 0x68, 0x68, 0x61, 0x61 },
2381 .pll = PLL_28, 2438 .pll = PLL_28,
2382 }, 2439 },
2383 2440
@@ -2392,7 +2449,8 @@ struct tvcard bttv_tvcards[] = {
2392 .svhs = 2, 2449 .svhs = 2,
2393 .gpiomask = 0x008007, 2450 .gpiomask = 0x008007,
2394 .muxsel = { 2, 3, 1, 1 }, 2451 .muxsel = { 2, 3, 1, 1 },
2395 .audiomux = { 0, 1, 2, 2, 3 }, 2452 .gpiomux = { 0, 1, 2, 2 },
2453 .gpiomute = 3,
2396 .needs_tvaudio = 0, 2454 .needs_tvaudio = 0,
2397 .pll = PLL_28, 2455 .pll = PLL_28,
2398 .tuner_type = TUNER_PHILIPS_PAL, 2456 .tuner_type = TUNER_PHILIPS_PAL,
@@ -2417,7 +2475,7 @@ struct tvcard bttv_tvcards[] = {
2417 .no_tda9875 = 1, 2475 .no_tda9875 = 1,
2418 .no_tda7432 = 1, 2476 .no_tda7432 = 1,
2419 .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/ 2477 .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/
2420 .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ 2478 .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */
2421 .pll = PLL_28, 2479 .pll = PLL_28,
2422 .needs_tvaudio = 0, 2480 .needs_tvaudio = 0,
2423 .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/ 2481 .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/
@@ -2435,7 +2493,7 @@ struct tvcard bttv_tvcards[] = {
2435 .svhs = 2, 2493 .svhs = 2,
2436 .gpiomask = 0x0000000f, 2494 .gpiomask = 0x0000000f,
2437 .muxsel = { 2, 1, 1 }, 2495 .muxsel = { 2, 1, 1 },
2438 .audiomux = { 0x02, 0x00, 0x00, 0x00, 0x00 }, 2496 .gpiomux = { 0x02, 0x00, 0x00, 0x00 },
2439 .tuner_type = TUNER_TEMIC_PAL, 2497 .tuner_type = TUNER_TEMIC_PAL,
2440 .tuner_addr = ADDR_UNSET, 2498 .tuner_addr = ADDR_UNSET,
2441 .radio_addr = ADDR_UNSET, 2499 .radio_addr = ADDR_UNSET,
@@ -2491,7 +2549,7 @@ struct tvcard bttv_tvcards[] = {
2491 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2549 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
2492 3, 3, 3, 3, 3, 3, 3, 3 }, 2550 3, 3, 3, 3, 3, 3, 3, 3 },
2493 .muxsel_hook = sigmaSQ_muxsel, 2551 .muxsel_hook = sigmaSQ_muxsel,
2494 .audiomux = { 0 }, 2552 .gpiomux = { 0 },
2495 .no_msp34xx = 1, 2553 .no_msp34xx = 1,
2496 .pll = PLL_28, 2554 .pll = PLL_28,
2497 .tuner_type = -1, 2555 .tuner_type = -1,
@@ -2508,7 +2566,7 @@ struct tvcard bttv_tvcards[] = {
2508 .gpiomask = 0x0, 2566 .gpiomask = 0x0,
2509 .muxsel = { 2, 2, 2, 2 }, 2567 .muxsel = { 2, 2, 2, 2 },
2510 .muxsel_hook = sigmaSLC_muxsel, 2568 .muxsel_hook = sigmaSLC_muxsel,
2511 .audiomux = { 0 }, 2569 .gpiomux = { 0 },
2512 .no_msp34xx = 1, 2570 .no_msp34xx = 1,
2513 .pll = PLL_28, 2571 .pll = PLL_28,
2514 .tuner_type = -1, 2572 .tuner_type = -1,
@@ -2526,7 +2584,8 @@ struct tvcard bttv_tvcards[] = {
2526 .svhs = -1, 2584 .svhs = -1,
2527 .gpiomask = 0xFF, 2585 .gpiomask = 0xFF,
2528 .muxsel = { 2, 3, 1, 1 }, 2586 .muxsel = { 2, 3, 1, 1 },
2529 .audiomux = { 2, 0, 0, 0, 10 }, 2587 .gpiomux = { 2, 0, 0, 0 },
2588 .gpiomute = 10,
2530 .needs_tvaudio = 0, 2589 .needs_tvaudio = 0,
2531 .pll = PLL_28, 2590 .pll = PLL_28,
2532 .tuner_type = TUNER_PHILIPS_PAL, 2591 .tuner_type = TUNER_PHILIPS_PAL,
@@ -2560,7 +2619,8 @@ struct tvcard bttv_tvcards[] = {
2560 .svhs = 2, 2619 .svhs = 2,
2561 .gpiomask = 0x3f, 2620 .gpiomask = 0x3f,
2562 .muxsel = {2, 3, 1, 0 }, 2621 .muxsel = {2, 3, 1, 0 },
2563 .audiomux = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31 }, 2622 .gpiomux = {0x31, 0x31, 0x31, 0x31 },
2623 .gpiomute = 0x31,
2564 .no_msp34xx = 1, 2624 .no_msp34xx = 1,
2565 .pll = PLL_28, 2625 .pll = PLL_28,
2566 .tuner_type = TUNER_PHILIPS_NTSC_M, 2626 .tuner_type = TUNER_PHILIPS_NTSC_M,
@@ -2583,7 +2643,7 @@ struct tvcard bttv_tvcards[] = {
2583 .tuner_addr = ADDR_UNSET, 2643 .tuner_addr = ADDR_UNSET,
2584 .radio_addr = ADDR_UNSET, 2644 .radio_addr = ADDR_UNSET,
2585 .gpiomask = 0x008007, 2645 .gpiomask = 0x008007,
2586 .audiomux = { 0, 0x000001,0,0, 0 }, 2646 .gpiomux = { 0, 0x000001,0,0 },
2587 .needs_tvaudio = 1, 2647 .needs_tvaudio = 1,
2588 .has_radio = 1, 2648 .has_radio = 1,
2589 }, 2649 },
@@ -2693,7 +2753,8 @@ struct tvcard bttv_tvcards[] = {
2693 .svhs = 2, 2753 .svhs = 2,
2694 .muxsel = { 2, 3, 1 }, 2754 .muxsel = { 2, 3, 1 },
2695 .gpiomask = 0x00e00007, 2755 .gpiomask = 0x00e00007,
2696 .audiomux = { 0x00400005, 0, 0x00000001, 0, 0x00c00007, 0 }, 2756 .gpiomux = { 0x00400005, 0, 0x00000001, 0 },
2757 .gpiomute = 0x00c00007,
2697 .no_msp34xx = 1, 2758 .no_msp34xx = 1,
2698 .no_tda9875 = 1, 2759 .no_tda9875 = 1,
2699 .no_tda7432 = 1, 2760 .no_tda7432 = 1,
@@ -2709,7 +2770,8 @@ struct tvcard bttv_tvcards[] = {
2709 .svhs = 2, 2770 .svhs = 2,
2710 .gpiomask = 0x01fe00, 2771 .gpiomask = 0x01fe00,
2711 .muxsel = { 2, 3, 1, 1 }, 2772 .muxsel = { 2, 3, 1, 1 },
2712 .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, 2773 .gpiomux = { 0x001e00, 0, 0x018000, 0x014000 },
2774 .gpiomute = 0x002000,
2713 .needs_tvaudio = 1, 2775 .needs_tvaudio = 1,
2714 .pll = PLL_28, 2776 .pll = PLL_28,
2715 .tuner_type = TUNER_YMEC_TVF66T5_B_DFF, 2777 .tuner_type = TUNER_YMEC_TVF66T5_B_DFF,
@@ -2726,7 +2788,8 @@ struct tvcard bttv_tvcards[] = {
2726 .svhs = 2, 2788 .svhs = 2,
2727 .gpiomask = 0x001c0007, 2789 .gpiomask = 0x001c0007,
2728 .muxsel = { 2, 3, 1, 1 }, 2790 .muxsel = { 2, 3, 1, 1 },
2729 .audiomux = { 0, 1, 2, 2, 3 }, 2791 .gpiomux = { 0, 1, 2, 2 },
2792 .gpiomute = 3,
2730 .needs_tvaudio = 0, 2793 .needs_tvaudio = 0,
2731 .pll = PLL_28, 2794 .pll = PLL_28,
2732 .tuner_type = TUNER_TENA_9533_DI, 2795 .tuner_type = TUNER_TENA_9533_DI,
@@ -2745,7 +2808,8 @@ struct tvcard bttv_tvcards[] = {
2745 .gpiomask = 0x01fe00, 2808 .gpiomask = 0x01fe00,
2746 .muxsel = { 2,3,1,1,-1 }, 2809 .muxsel = { 2,3,1,1,-1 },
2747 .digital_mode = DIGITAL_MODE_CAMERA, 2810 .digital_mode = DIGITAL_MODE_CAMERA,
2748 .audiomux = { 0x00400, 0x10400, 0x04400, 0x80000, 0x12400, 0x46000 }, 2811 .gpiomux = { 0x00400, 0x10400, 0x04400, 0x80000 },
2812 .gpiomute = 0x12400,
2749 .no_msp34xx = 1, 2813 .no_msp34xx = 1,
2750 .pll = PLL_28, 2814 .pll = PLL_28,
2751 .tuner_type = TUNER_LG_PAL_FM, 2815 .tuner_type = TUNER_LG_PAL_FM,
@@ -2763,7 +2827,8 @@ struct tvcard bttv_tvcards[] = {
2763 .svhs = 2, 2827 .svhs = 2,
2764 .gpiomask = 0x3f, 2828 .gpiomask = 0x3f,
2765 .muxsel = { 2, 3, 1, 1 }, 2829 .muxsel = { 2, 3, 1, 1 },
2766 .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, 2830 .gpiomux = { 0x21, 0x20, 0x24, 0x2c },
2831 .gpiomute = 0x29,
2767 .no_msp34xx = 1, 2832 .no_msp34xx = 1,
2768 .pll = PLL_28, 2833 .pll = PLL_28,
2769 .tuner_type = TUNER_YMEC_TVF_5533MF, 2834 .tuner_type = TUNER_YMEC_TVF_5533MF,
@@ -2797,7 +2862,8 @@ struct tvcard bttv_tvcards[] = {
2797 .svhs = 2, 2862 .svhs = 2,
2798 .gpiomask = 15, 2863 .gpiomask = 15,
2799 .muxsel = { 2, 3, 1, 1 }, 2864 .muxsel = { 2, 3, 1, 1 },
2800 .audiomux = { 2, 0, 0, 0, 1 }, 2865 .gpiomux = { 2, 0, 0, 0 },
2866 .gpiomute = 1,
2801 .needs_tvaudio = 1, 2867 .needs_tvaudio = 1,
2802 .pll = PLL_28, 2868 .pll = PLL_28,
2803 .tuner_type = 2, 2869 .tuner_type = 2,
@@ -2813,7 +2879,7 @@ struct tvcard bttv_tvcards[] = {
2813 .svhs = 2, 2879 .svhs = 2,
2814 .gpiomask = 0x108007, 2880 .gpiomask = 0x108007,
2815 .muxsel = { 2, 3, 1, 1 }, 2881 .muxsel = { 2, 3, 1, 1 },
2816 .audiomux = { 100000, 100002, 100002, 100000 }, 2882 .gpiomux = { 100000, 100002, 100002, 100000 },
2817 .no_msp34xx = 1, 2883 .no_msp34xx = 1,
2818 .no_tda9875 = 1, 2884 .no_tda9875 = 1,
2819 .no_tda7432 = 1, 2885 .no_tda7432 = 1,
@@ -2853,7 +2919,8 @@ struct tvcard bttv_tvcards[] = {
2853 .svhs = 2, 2919 .svhs = 2,
2854 .gpiomask = 7, 2920 .gpiomask = 7,
2855 .muxsel = { 2, 3, 1, 1 }, 2921 .muxsel = { 2, 3, 1, 1 },
2856 .audiomux = { 0, 1, 2, 3, 4 }, 2922 .gpiomux = { 0, 1, 2, 3 },
2923 .gpiomute = 4,
2857 .tuner_type = TUNER_TEMIC_4009FR5_PAL, 2924 .tuner_type = TUNER_TEMIC_4009FR5_PAL,
2858 .tuner_addr = ADDR_UNSET, 2925 .tuner_addr = ADDR_UNSET,
2859 .radio_addr = ADDR_UNSET, 2926 .radio_addr = ADDR_UNSET,
@@ -2925,20 +2992,20 @@ void __devinit bttv_idcard(struct bttv *btv)
2925 if (UNSET != audiomux[0]) { 2992 if (UNSET != audiomux[0]) {
2926 gpiobits = 0; 2993 gpiobits = 0;
2927 for (i = 0; i < 5; i++) { 2994 for (i = 0; i < 5; i++) {
2928 bttv_tvcards[btv->c.type].audiomux[i] = audiomux[i]; 2995 bttv_tvcards[btv->c.type].gpiomux[i] = audiomux[i];
2929 gpiobits |= audiomux[i]; 2996 gpiobits |= audiomux[i];
2930 } 2997 }
2931 } else { 2998 } else {
2932 gpiobits = audioall; 2999 gpiobits = audioall;
2933 for (i = 0; i < 5; i++) { 3000 for (i = 0; i < 5; i++) {
2934 bttv_tvcards[btv->c.type].audiomux[i] = audioall; 3001 bttv_tvcards[btv->c.type].gpiomux[i] = audioall;
2935 } 3002 }
2936 } 3003 }
2937 bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits; 3004 bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits;
2938 printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=", 3005 printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=",
2939 btv->c.nr,bttv_tvcards[btv->c.type].gpiomask); 3006 btv->c.nr,bttv_tvcards[btv->c.type].gpiomask);
2940 for (i = 0; i < 5; i++) { 3007 for (i = 0; i < 5; i++) {
2941 printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].audiomux[i]); 3008 printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].gpiomux[i]);
2942 } 3009 }
2943 printk("\n"); 3010 printk("\n");
2944} 3011}
@@ -3796,18 +3863,18 @@ void bttv_tda9880_setnorm(struct bttv *btv, int norm)
3796{ 3863{
3797 /* fix up our card entry */ 3864 /* fix up our card entry */
3798 if(norm==VIDEO_MODE_NTSC) { 3865 if(norm==VIDEO_MODE_NTSC) {
3799 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[0]=0x957fff; 3866 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff;
3800 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[4]=0x957fff; 3867 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x957fff;
3801 dprintk("bttv_tda9880_setnorm to NTSC\n"); 3868 dprintk("bttv_tda9880_setnorm to NTSC\n");
3802 } 3869 }
3803 else { 3870 else {
3804 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[0]=0x947fff; 3871 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff;
3805 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].audiomux[4]=0x947fff; 3872 bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x947fff;
3806 dprintk("bttv_tda9880_setnorm to PAL\n"); 3873 dprintk("bttv_tda9880_setnorm to PAL\n");
3807 } 3874 }
3808 /* set GPIO according */ 3875 /* set GPIO according */
3809 gpio_bits(bttv_tvcards[btv->c.type].gpiomask, 3876 gpio_bits(bttv_tvcards[btv->c.type].gpiomask,
3810 bttv_tvcards[btv->c.type].audiomux[btv->audio]); 3877 bttv_tvcards[btv->c.type].gpiomux[btv->audio]);
3811} 3878}
3812 3879
3813 3880