diff options
author | Takashi Iwai <tiwai@suse.de> | 2007-08-23 13:04:28 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2007-10-16 09:59:26 -0400 |
commit | dfe495d0a51e20325b51760f34a2f53bfe1f3b52 (patch) | |
tree | 7345b903c8c22734ae249ab339aa9cd1b8723941 /sound/pci | |
parent | 889c43955115ea7412d71335e3ceff6bad118dce (diff) |
[ALSA] hda-codec - Fix Dell laptops support with STAC codecs
Fixed Dell laptops support with STAC92xx codecs.
Many pin-config models are introduced. See ALSA-Configuration.txt
for details.
The patch taken from ALSA bug#3319, originally by Jorg Prante:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3319
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 345 |
1 files changed, 313 insertions, 32 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 76ec32a375c0..adca2854e50b 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -39,11 +39,22 @@ | |||
39 | 39 | ||
40 | enum { | 40 | enum { |
41 | STAC_REF, | 41 | STAC_REF, |
42 | STAC_9200_DELL_D21, | ||
43 | STAC_9200_DELL_D22, | ||
44 | STAC_9200_DELL_D23, | ||
45 | STAC_9200_DELL_M21, | ||
46 | STAC_9200_DELL_M22, | ||
47 | STAC_9200_DELL_M23, | ||
48 | STAC_9200_DELL_M24, | ||
49 | STAC_9200_DELL_M25, | ||
50 | STAC_9200_DELL_M26, | ||
51 | STAC_9200_DELL_M27, | ||
42 | STAC_9200_MODELS | 52 | STAC_9200_MODELS |
43 | }; | 53 | }; |
44 | 54 | ||
45 | enum { | 55 | enum { |
46 | STAC_9205_REF, | 56 | STAC_9205_REF, |
57 | STAC_9205_DELL_M42, | ||
47 | STAC_9205_DELL_M43, | 58 | STAC_9205_DELL_M43, |
48 | STAC_9205_DELL_M44, | 59 | STAC_9205_DELL_M44, |
49 | STAC_9205_M43xx, | 60 | STAC_9205_M43xx, |
@@ -62,19 +73,22 @@ enum { | |||
62 | STAC_D945_REF, | 73 | STAC_D945_REF, |
63 | STAC_D945GTP3, | 74 | STAC_D945GTP3, |
64 | STAC_D945GTP5, | 75 | STAC_D945GTP5, |
65 | STAC_922X_DELL, | ||
66 | STAC_INTEL_MAC_V1, | 76 | STAC_INTEL_MAC_V1, |
67 | STAC_INTEL_MAC_V2, | 77 | STAC_INTEL_MAC_V2, |
68 | STAC_INTEL_MAC_V3, | 78 | STAC_INTEL_MAC_V3, |
69 | STAC_INTEL_MAC_V4, | 79 | STAC_INTEL_MAC_V4, |
70 | STAC_INTEL_MAC_V5, | 80 | STAC_INTEL_MAC_V5, |
71 | /* for backward compitability */ | 81 | /* for backward compatibility */ |
72 | STAC_MACMINI, | 82 | STAC_MACMINI, |
73 | STAC_MACBOOK, | 83 | STAC_MACBOOK, |
74 | STAC_MACBOOK_PRO_V1, | 84 | STAC_MACBOOK_PRO_V1, |
75 | STAC_MACBOOK_PRO_V2, | 85 | STAC_MACBOOK_PRO_V2, |
76 | STAC_IMAC_INTEL, | 86 | STAC_IMAC_INTEL, |
77 | STAC_IMAC_INTEL_20, | 87 | STAC_IMAC_INTEL_20, |
88 | STAC_922X_DELL_D81, | ||
89 | STAC_922X_DELL_D82, | ||
90 | STAC_922X_DELL_M81, | ||
91 | STAC_922X_DELL_M82, | ||
78 | STAC_922X_MODELS | 92 | STAC_922X_MODELS |
79 | }; | 93 | }; |
80 | 94 | ||
@@ -456,12 +470,144 @@ static unsigned int ref9200_pin_configs[8] = { | |||
456 | 0x02a19020, 0x01a19021, 0x90100140, 0x01813122, | 470 | 0x02a19020, 0x01a19021, 0x90100140, 0x01813122, |
457 | }; | 471 | }; |
458 | 472 | ||
473 | /* | ||
474 | STAC 9200 pin configs for | ||
475 | 102801A8 | ||
476 | 102801DE | ||
477 | 102801E8 | ||
478 | */ | ||
479 | static unsigned int dell9200_d21_pin_configs[8] = { | ||
480 | 0x400001f0, 0x400001f1, 0x01a19021, 0x90100140, | ||
481 | 0x01813122, 0x02214030, 0x01014010, 0x02a19020, | ||
482 | }; | ||
483 | |||
484 | /* | ||
485 | STAC 9200 pin configs for | ||
486 | 102801C0 | ||
487 | 102801C1 | ||
488 | */ | ||
489 | static unsigned int dell9200_d22_pin_configs[8] = { | ||
490 | 0x400001f0, 0x400001f1, 0x02a19021, 0x90100140, | ||
491 | 0x400001f2, 0x0221401f, 0x01014010, 0x01813020, | ||
492 | }; | ||
493 | |||
494 | /* | ||
495 | STAC 9200 pin configs for | ||
496 | 102801C4 (Dell Dimension E310) | ||
497 | 102801C5 | ||
498 | 102801C7 | ||
499 | 102801D9 | ||
500 | 102801DA | ||
501 | 102801E3 | ||
502 | */ | ||
503 | static unsigned int dell9200_d23_pin_configs[8] = { | ||
504 | 0x400001f0, 0x400001f1, 0x01a19021, 0x90100140, | ||
505 | 0x400001f2, 0x0221401f, 0x01014010, 0x01813020, | ||
506 | }; | ||
507 | |||
508 | |||
509 | /* | ||
510 | STAC 9200-32 pin configs for | ||
511 | 102801B5 (Dell Inspiron 630m) | ||
512 | 102801D8 (Dell Inspiron 640m) | ||
513 | */ | ||
514 | static unsigned int dell9200_m21_pin_configs[8] = { | ||
515 | 0x40c003fa, 0x03441340, 0x03a11020, 0x401003fc, | ||
516 | 0x403003fd, 0x0321121f, 0x0321121f, 0x408003fb, | ||
517 | }; | ||
518 | |||
519 | /* | ||
520 | STAC 9200-32 pin configs for | ||
521 | 102801C2 (Dell Latitude D620) | ||
522 | 102801C8 | ||
523 | 102801CC (Dell Latitude D820) | ||
524 | 102801D4 | ||
525 | 102801D6 | ||
526 | */ | ||
527 | static unsigned int dell9200_m22_pin_configs[8] = { | ||
528 | 0x40c003fa, 0x0144131f, 0x03A11020, 0x401003fb, | ||
529 | 0x40f000fc, 0x0321121f, 0x90170310, 0x90a70321, | ||
530 | }; | ||
531 | |||
532 | /* | ||
533 | STAC 9200-32 pin configs for | ||
534 | 102801CE (Dell XPS M1710) | ||
535 | 102801CF (Dell Precision M90) | ||
536 | */ | ||
537 | static unsigned int dell9200_m23_pin_configs[8] = { | ||
538 | 0x40c003fa, 0x01441340, 0x0421421f, 0x90170310, | ||
539 | 0x408003fb, 0x04a1102e, 0x90170311, 0x403003fc, | ||
540 | }; | ||
541 | |||
542 | /* | ||
543 | STAC 9200-32 pin configs for | ||
544 | 102801C9 | ||
545 | 102801CA | ||
546 | 102801CB (Dell Latitude 120L) | ||
547 | 102801D3 | ||
548 | */ | ||
549 | static unsigned int dell9200_m24_pin_configs[8] = { | ||
550 | 0x40c003fa, 0x404003fb, 0x03a11020, 0x401003fd, | ||
551 | 0x403003fe, 0x0321121f, 0x90170310, 0x408003fc, | ||
552 | }; | ||
553 | |||
554 | /* | ||
555 | STAC 9200-32 pin configs for | ||
556 | 102801BD (Dell Inspiron E1505n) | ||
557 | 102801EE | ||
558 | 102801EF | ||
559 | */ | ||
560 | static unsigned int dell9200_m25_pin_configs[8] = { | ||
561 | 0x40c003fa, 0x01441340, 0x04a11020, 0x401003fc, | ||
562 | 0x403003fd, 0x0421121f, 0x90170310, 0x408003fb, | ||
563 | }; | ||
564 | |||
565 | /* | ||
566 | STAC 9200-32 pin configs for | ||
567 | 102801F5 (Dell Inspiron 1501) | ||
568 | 102801F6 | ||
569 | */ | ||
570 | static unsigned int dell9200_m26_pin_configs[8] = { | ||
571 | 0x40c003fa, 0x404003fb, 0x04a11020, 0x401003fd, | ||
572 | 0x403003fe, 0x0421121f, 0x90170310, 0x408003fc, | ||
573 | }; | ||
574 | |||
575 | /* | ||
576 | STAC 9200-32 | ||
577 | 102801CD (Dell Inspiron E1705/9400) | ||
578 | */ | ||
579 | static unsigned int dell9200_m27_pin_configs[8] = { | ||
580 | 0x40c003fa, 0x01441340, 0x04a11020, 0x90170310, | ||
581 | 0x40f003fc, 0x0421121f, 0x90170310, 0x408003fb, | ||
582 | }; | ||
583 | |||
584 | |||
459 | static unsigned int *stac9200_brd_tbl[STAC_9200_MODELS] = { | 585 | static unsigned int *stac9200_brd_tbl[STAC_9200_MODELS] = { |
460 | [STAC_REF] = ref9200_pin_configs, | 586 | [STAC_REF] = ref9200_pin_configs, |
587 | [STAC_9200_DELL_D21] = dell9200_d21_pin_configs, | ||
588 | [STAC_9200_DELL_D22] = dell9200_d22_pin_configs, | ||
589 | [STAC_9200_DELL_D23] = dell9200_d23_pin_configs, | ||
590 | [STAC_9200_DELL_M21] = dell9200_m21_pin_configs, | ||
591 | [STAC_9200_DELL_M22] = dell9200_m22_pin_configs, | ||
592 | [STAC_9200_DELL_M23] = dell9200_m23_pin_configs, | ||
593 | [STAC_9200_DELL_M24] = dell9200_m24_pin_configs, | ||
594 | [STAC_9200_DELL_M25] = dell9200_m25_pin_configs, | ||
595 | [STAC_9200_DELL_M26] = dell9200_m26_pin_configs, | ||
596 | [STAC_9200_DELL_M27] = dell9200_m27_pin_configs, | ||
461 | }; | 597 | }; |
462 | 598 | ||
463 | static const char *stac9200_models[STAC_9200_MODELS] = { | 599 | static const char *stac9200_models[STAC_9200_MODELS] = { |
464 | [STAC_REF] = "ref", | 600 | [STAC_REF] = "ref", |
601 | [STAC_9200_DELL_D21] = "dell-d21", | ||
602 | [STAC_9200_DELL_D22] = "dell-d22", | ||
603 | [STAC_9200_DELL_D23] = "dell-d23", | ||
604 | [STAC_9200_DELL_M21] = "dell-m21", | ||
605 | [STAC_9200_DELL_M22] = "dell-m22", | ||
606 | [STAC_9200_DELL_M23] = "dell-m23", | ||
607 | [STAC_9200_DELL_M24] = "dell-m24", | ||
608 | [STAC_9200_DELL_M25] = "dell-m25", | ||
609 | [STAC_9200_DELL_M26] = "dell-m26", | ||
610 | [STAC_9200_DELL_M27] = "dell-m27", | ||
465 | }; | 611 | }; |
466 | 612 | ||
467 | static struct snd_pci_quirk stac9200_cfg_tbl[] = { | 613 | static struct snd_pci_quirk stac9200_cfg_tbl[] = { |
@@ -469,27 +615,64 @@ static struct snd_pci_quirk stac9200_cfg_tbl[] = { | |||
469 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, | 615 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, |
470 | "DFI LanParty", STAC_REF), | 616 | "DFI LanParty", STAC_REF), |
471 | /* Dell laptops have BIOS problem */ | 617 | /* Dell laptops have BIOS problem */ |
618 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01a8, | ||
619 | "unknown Dell", STAC_9200_DELL_D21), | ||
472 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01b5, | 620 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01b5, |
473 | "Dell Inspiron 630m", STAC_REF), | 621 | "Dell Inspiron 630m", STAC_9200_DELL_M21), |
622 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01bd, | ||
623 | "Dell Inspiron E1505n", STAC_9200_DELL_M25), | ||
624 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c0, | ||
625 | "unknown Dell", STAC_9200_DELL_D22), | ||
626 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c1, | ||
627 | "unknown Dell", STAC_9200_DELL_D22), | ||
474 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c2, | 628 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c2, |
475 | "Dell Latitude D620", STAC_REF), | 629 | "Dell Latitude D620", STAC_9200_DELL_M22), |
630 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c5, | ||
631 | "unknown Dell", STAC_9200_DELL_D23), | ||
632 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c7, | ||
633 | "unknown Dell", STAC_9200_DELL_D23), | ||
634 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c8, | ||
635 | "unknown Dell", STAC_9200_DELL_M22), | ||
636 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01c9, | ||
637 | "unknown Dell", STAC_9200_DELL_M24), | ||
638 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ca, | ||
639 | "unknown Dell", STAC_9200_DELL_M24), | ||
476 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cb, | 640 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cb, |
477 | "Dell Latitude 120L", STAC_REF), | 641 | "Dell Latitude 120L", STAC_9200_DELL_M24), |
478 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cc, | 642 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cc, |
479 | "Dell Latitude D820", STAC_REF), | 643 | "Dell Latitude D820", STAC_9200_DELL_M22), |
480 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cd, | 644 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cd, |
481 | "Dell Inspiron E1705/9400", STAC_REF), | 645 | "Dell Inspiron E1705/9400", STAC_9200_DELL_M27), |
482 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ce, | 646 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ce, |
483 | "Dell XPS M1710", STAC_REF), | 647 | "Dell XPS M1710", STAC_9200_DELL_M23), |
484 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cf, | 648 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cf, |
485 | "Dell Precision M90", STAC_REF), | 649 | "Dell Precision M90", STAC_9200_DELL_M23), |
650 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d3, | ||
651 | "unknown Dell", STAC_9200_DELL_M22), | ||
652 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d4, | ||
653 | "unknown Dell", STAC_9200_DELL_M22), | ||
486 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d6, | 654 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d6, |
487 | "unknown Dell", STAC_REF), | 655 | "unknown Dell", STAC_9200_DELL_M22), |
488 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d8, | 656 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d8, |
489 | "Dell Inspiron 640m", STAC_REF), | 657 | "Dell Inspiron 640m", STAC_9200_DELL_M21), |
658 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d9, | ||
659 | "unknown Dell", STAC_9200_DELL_D23), | ||
660 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01da, | ||
661 | "unknown Dell", STAC_9200_DELL_D23), | ||
662 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01de, | ||
663 | "unknown Dell", STAC_9200_DELL_D21), | ||
664 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01e3, | ||
665 | "unknown Dell", STAC_9200_DELL_D23), | ||
666 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01e8, | ||
667 | "unknown Dell", STAC_9200_DELL_D21), | ||
668 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ee, | ||
669 | "unknown Dell", STAC_9200_DELL_M25), | ||
670 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ef, | ||
671 | "unknown Dell", STAC_9200_DELL_M25), | ||
490 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f5, | 672 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f5, |
491 | "Dell Inspiron 1501", STAC_REF), | 673 | "Dell Inspiron 1501", STAC_9200_DELL_M26), |
492 | 674 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f6, | |
675 | "unknown Dell", STAC_9200_DELL_M26), | ||
493 | /* Panasonic */ | 676 | /* Panasonic */ |
494 | SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_REF), | 677 | SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_REF), |
495 | 678 | ||
@@ -548,6 +731,51 @@ static unsigned int ref922x_pin_configs[10] = { | |||
548 | 0x40000100, 0x40000100, | 731 | 0x40000100, 0x40000100, |
549 | }; | 732 | }; |
550 | 733 | ||
734 | /* | ||
735 | STAC 922X pin configs for | ||
736 | 102801A7 | ||
737 | 102801AB | ||
738 | 102801A9 | ||
739 | 102801D1 | ||
740 | 102801D2 | ||
741 | */ | ||
742 | static unsigned int dell_922x_d81_pin_configs[10] = { | ||
743 | 0x02214030, 0x01a19021, 0x01111012, 0x01114010, | ||
744 | 0x02a19020, 0x01117011, 0x400001f0, 0x400001f1, | ||
745 | 0x01813122, 0x400001f2, | ||
746 | }; | ||
747 | |||
748 | /* | ||
749 | STAC 922X pin configs for | ||
750 | 102801AC | ||
751 | 102801D0 | ||
752 | */ | ||
753 | static unsigned int dell_922x_d82_pin_configs[10] = { | ||
754 | 0x02214030, 0x01a19021, 0x01111012, 0x01114010, | ||
755 | 0x02a19020, 0x01117011, 0x01451140, 0x400001f0, | ||
756 | 0x01813122, 0x400001f1, | ||
757 | }; | ||
758 | |||
759 | /* | ||
760 | STAC 922X pin configs for | ||
761 | 102801BF | ||
762 | */ | ||
763 | static unsigned int dell_922x_m81_pin_configs[10] = { | ||
764 | 0x0321101f, 0x01112024, 0x01111222, 0x91174220, | ||
765 | 0x03a11050, 0x01116221, 0x90a70330, 0x01452340, | ||
766 | 0x40C003f1, 0x405003f0, | ||
767 | }; | ||
768 | |||
769 | /* | ||
770 | STAC 9221 A1 pin configs for | ||
771 | 102801D7 (Dell XPS M1210) | ||
772 | */ | ||
773 | static unsigned int dell_922x_m82_pin_configs[10] = { | ||
774 | 0x0221121f, 0x408103ff, 0x02111212, 0x90100310, | ||
775 | 0x408003f1, 0x02111211, 0x03451340, 0x40c003f2, | ||
776 | 0x508003f3, 0x405003f4, | ||
777 | }; | ||
778 | |||
551 | static unsigned int d945gtp3_pin_configs[10] = { | 779 | static unsigned int d945gtp3_pin_configs[10] = { |
552 | 0x0221401f, 0x01a19022, 0x01813021, 0x01014010, | 780 | 0x0221401f, 0x01a19022, 0x01813021, 0x01014010, |
553 | 0x40000100, 0x40000100, 0x40000100, 0x40000100, | 781 | 0x40000100, 0x40000100, 0x40000100, 0x40000100, |
@@ -590,48 +818,49 @@ static unsigned int intel_mac_v5_pin_configs[10] = { | |||
590 | 0x400000fc, 0x400000fb, | 818 | 0x400000fc, 0x400000fb, |
591 | }; | 819 | }; |
592 | 820 | ||
593 | static unsigned int stac922x_dell_pin_configs[10] = { | ||
594 | 0x0221121e, 0x408103ff, 0x02a1123e, 0x90100310, | ||
595 | 0x408003f1, 0x0221122f, 0x03451340, 0x40c003f2, | ||
596 | 0x50a003f3, 0x405003f4 | ||
597 | }; | ||
598 | 821 | ||
599 | static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { | 822 | static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { |
600 | [STAC_D945_REF] = ref922x_pin_configs, | 823 | [STAC_D945_REF] = ref922x_pin_configs, |
601 | [STAC_D945GTP3] = d945gtp3_pin_configs, | 824 | [STAC_D945GTP3] = d945gtp3_pin_configs, |
602 | [STAC_D945GTP5] = d945gtp5_pin_configs, | 825 | [STAC_D945GTP5] = d945gtp5_pin_configs, |
603 | [STAC_922X_DELL] = stac922x_dell_pin_configs, | ||
604 | [STAC_INTEL_MAC_V1] = intel_mac_v1_pin_configs, | 826 | [STAC_INTEL_MAC_V1] = intel_mac_v1_pin_configs, |
605 | [STAC_INTEL_MAC_V2] = intel_mac_v2_pin_configs, | 827 | [STAC_INTEL_MAC_V2] = intel_mac_v2_pin_configs, |
606 | [STAC_INTEL_MAC_V3] = intel_mac_v3_pin_configs, | 828 | [STAC_INTEL_MAC_V3] = intel_mac_v3_pin_configs, |
607 | [STAC_INTEL_MAC_V4] = intel_mac_v4_pin_configs, | 829 | [STAC_INTEL_MAC_V4] = intel_mac_v4_pin_configs, |
608 | [STAC_INTEL_MAC_V5] = intel_mac_v5_pin_configs, | 830 | [STAC_INTEL_MAC_V5] = intel_mac_v5_pin_configs, |
609 | /* for backward compitability */ | 831 | /* for backward compatibility */ |
610 | [STAC_MACMINI] = intel_mac_v3_pin_configs, | 832 | [STAC_MACMINI] = intel_mac_v3_pin_configs, |
611 | [STAC_MACBOOK] = intel_mac_v5_pin_configs, | 833 | [STAC_MACBOOK] = intel_mac_v5_pin_configs, |
612 | [STAC_MACBOOK_PRO_V1] = intel_mac_v3_pin_configs, | 834 | [STAC_MACBOOK_PRO_V1] = intel_mac_v3_pin_configs, |
613 | [STAC_MACBOOK_PRO_V2] = intel_mac_v3_pin_configs, | 835 | [STAC_MACBOOK_PRO_V2] = intel_mac_v3_pin_configs, |
614 | [STAC_IMAC_INTEL] = intel_mac_v2_pin_configs, | 836 | [STAC_IMAC_INTEL] = intel_mac_v2_pin_configs, |
615 | [STAC_IMAC_INTEL_20] = intel_mac_v3_pin_configs, | 837 | [STAC_IMAC_INTEL_20] = intel_mac_v3_pin_configs, |
838 | [STAC_922X_DELL_D81] = dell_922x_d81_pin_configs, | ||
839 | [STAC_922X_DELL_D82] = dell_922x_d82_pin_configs, | ||
840 | [STAC_922X_DELL_M81] = dell_922x_m81_pin_configs, | ||
841 | [STAC_922X_DELL_M82] = dell_922x_m82_pin_configs, | ||
616 | }; | 842 | }; |
617 | 843 | ||
618 | static const char *stac922x_models[STAC_922X_MODELS] = { | 844 | static const char *stac922x_models[STAC_922X_MODELS] = { |
619 | [STAC_D945_REF] = "ref", | 845 | [STAC_D945_REF] = "ref", |
620 | [STAC_D945GTP5] = "5stack", | 846 | [STAC_D945GTP5] = "5stack", |
621 | [STAC_D945GTP3] = "3stack", | 847 | [STAC_D945GTP3] = "3stack", |
622 | [STAC_922X_DELL] = "dell", | ||
623 | [STAC_INTEL_MAC_V1] = "intel-mac-v1", | 848 | [STAC_INTEL_MAC_V1] = "intel-mac-v1", |
624 | [STAC_INTEL_MAC_V2] = "intel-mac-v2", | 849 | [STAC_INTEL_MAC_V2] = "intel-mac-v2", |
625 | [STAC_INTEL_MAC_V3] = "intel-mac-v3", | 850 | [STAC_INTEL_MAC_V3] = "intel-mac-v3", |
626 | [STAC_INTEL_MAC_V4] = "intel-mac-v4", | 851 | [STAC_INTEL_MAC_V4] = "intel-mac-v4", |
627 | [STAC_INTEL_MAC_V5] = "intel-mac-v5", | 852 | [STAC_INTEL_MAC_V5] = "intel-mac-v5", |
628 | /* for backward compitability */ | 853 | /* for backward compatibility */ |
629 | [STAC_MACMINI] = "macmini", | 854 | [STAC_MACMINI] = "macmini", |
630 | [STAC_MACBOOK] = "macbook", | 855 | [STAC_MACBOOK] = "macbook", |
631 | [STAC_MACBOOK_PRO_V1] = "macbook-pro-v1", | 856 | [STAC_MACBOOK_PRO_V1] = "macbook-pro-v1", |
632 | [STAC_MACBOOK_PRO_V2] = "macbook-pro", | 857 | [STAC_MACBOOK_PRO_V2] = "macbook-pro", |
633 | [STAC_IMAC_INTEL] = "imac-intel", | 858 | [STAC_IMAC_INTEL] = "imac-intel", |
634 | [STAC_IMAC_INTEL_20] = "imac-intel-20", | 859 | [STAC_IMAC_INTEL_20] = "imac-intel-20", |
860 | [STAC_922X_DELL_D81] = "dell-d81", | ||
861 | [STAC_922X_DELL_D82] = "dell-d82", | ||
862 | [STAC_922X_DELL_M81] = "dell-m81", | ||
863 | [STAC_922X_DELL_M82] = "dell-m82", | ||
635 | }; | 864 | }; |
636 | 865 | ||
637 | static struct snd_pci_quirk stac922x_cfg_tbl[] = { | 866 | static struct snd_pci_quirk stac922x_cfg_tbl[] = { |
@@ -695,9 +924,25 @@ static struct snd_pci_quirk stac922x_cfg_tbl[] = { | |||
695 | /* Apple Mac Mini (early 2006) */ | 924 | /* Apple Mac Mini (early 2006) */ |
696 | SND_PCI_QUIRK(0x8384, 0x7680, | 925 | SND_PCI_QUIRK(0x8384, 0x7680, |
697 | "Mac Mini", STAC_INTEL_MAC_V3), | 926 | "Mac Mini", STAC_INTEL_MAC_V3), |
698 | /* Dell */ | 927 | /* Dell systems */ |
699 | SND_PCI_QUIRK(0x1028, 0x01d7, "Dell XPS M1210", STAC_922X_DELL), | 928 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01a7, |
700 | 929 | "unknown Dell", STAC_922X_DELL_D81), | |
930 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01a9, | ||
931 | "unknown Dell", STAC_922X_DELL_D81), | ||
932 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ab, | ||
933 | "unknown Dell", STAC_922X_DELL_D81), | ||
934 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ac, | ||
935 | "unknown Dell", STAC_922X_DELL_D82), | ||
936 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01bf, | ||
937 | "unknown Dell", STAC_922X_DELL_M81), | ||
938 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d0, | ||
939 | "unknown Dell", STAC_922X_DELL_D82), | ||
940 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d1, | ||
941 | "unknown Dell", STAC_922X_DELL_D81), | ||
942 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d2, | ||
943 | "unknown Dell", STAC_922X_DELL_D81), | ||
944 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d7, | ||
945 | "Dell XPS M1210", STAC_922X_DELL_M82), | ||
701 | {} /* terminator */ | 946 | {} /* terminator */ |
702 | }; | 947 | }; |
703 | 948 | ||
@@ -768,7 +1013,7 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = { | |||
768 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2002, "Intel D965", STAC_D965_3ST), | 1013 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2002, "Intel D965", STAC_D965_3ST), |
769 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2001, "Intel D965", STAC_D965_3ST), | 1014 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2001, "Intel D965", STAC_D965_3ST), |
770 | /* Dell 3 stack systems */ | 1015 | /* Dell 3 stack systems */ |
771 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01dd, "Dell E520", STAC_DELL_3ST), | 1016 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01dd, "Dell Dimension E520", STAC_DELL_3ST), |
772 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ed, "Dell ", STAC_DELL_3ST), | 1017 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ed, "Dell ", STAC_DELL_3ST), |
773 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f4, "Dell ", STAC_DELL_3ST), | 1018 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f4, "Dell ", STAC_DELL_3ST), |
774 | /* 965 based 5 stack systems */ | 1019 | /* 965 based 5 stack systems */ |
@@ -790,28 +1035,54 @@ static unsigned int ref9205_pin_configs[12] = { | |||
790 | 0x90a000f0, 0x90a000f0, 0x01441030, 0x01c41030 | 1035 | 0x90a000f0, 0x90a000f0, 0x01441030, 0x01c41030 |
791 | }; | 1036 | }; |
792 | 1037 | ||
793 | static unsigned int dell_m43_9205_pin_configs[12] = { | 1038 | /* |
1039 | STAC 9205 pin configs for | ||
1040 | 102801F1 | ||
1041 | 102801F2 | ||
1042 | 102801FC | ||
1043 | 102801FD | ||
1044 | 10280204 | ||
1045 | 1028021F | ||
1046 | */ | ||
1047 | static unsigned int dell_9205_m42_pin_configs[12] = { | ||
1048 | 0x0321101F, 0x03A11020, 0x400003FA, 0x90170310, | ||
1049 | 0x400003FB, 0x400003FC, 0x400003FD, 0x40F000F9, | ||
1050 | 0x90A60330, 0x400003FF, 0x0144131F, 0x40C003FE, | ||
1051 | }; | ||
1052 | |||
1053 | /* | ||
1054 | STAC 9205 pin configs for | ||
1055 | 102801F9 | ||
1056 | 102801FA | ||
1057 | 102801FE | ||
1058 | 102801FF (Dell Precision M4300) | ||
1059 | 10280206 | ||
1060 | 10280200 | ||
1061 | 10280201 | ||
1062 | */ | ||
1063 | static unsigned int dell_9205_m43_pin_configs[12] = { | ||
794 | 0x0321101f, 0x03a11020, 0x90a70330, 0x90170310, | 1064 | 0x0321101f, 0x03a11020, 0x90a70330, 0x90170310, |
795 | 0x400000fe, 0x400000ff, 0x400000fd, 0x40f000f9, | 1065 | 0x400000fe, 0x400000ff, 0x400000fd, 0x40f000f9, |
796 | 0x400000fa, 0x400000fc, 0x0144131f, 0x40c003f8, | 1066 | 0x400000fa, 0x400000fc, 0x0144131f, 0x40c003f8, |
797 | }; | 1067 | }; |
798 | 1068 | ||
799 | static unsigned int dell_m44_9205_pin_configs[12] = { | 1069 | static unsigned int dell_9205_m44_pin_configs[12] = { |
800 | 0x0421101f, 0x04a11020, 0x400003fa, 0x90170310, | 1070 | 0x0421101f, 0x04a11020, 0x400003fa, 0x90170310, |
801 | 0x400003fb, 0x400003fc, 0x400003fd, 0x400003f9, | 1071 | 0x400003fb, 0x400003fc, 0x400003fd, 0x400003f9, |
802 | 0x90a60330, 0x400003ff, 0x01441340, 0x40c003fe, | 1072 | 0x90a60330, 0x400003ff, 0x01441340, 0x40c003fe, |
803 | }; | 1073 | }; |
804 | 1074 | ||
805 | |||
806 | static unsigned int *stac9205_brd_tbl[STAC_9205_MODELS] = { | 1075 | static unsigned int *stac9205_brd_tbl[STAC_9205_MODELS] = { |
807 | [STAC_9205_REF] = ref9205_pin_configs, | 1076 | [STAC_9205_REF] = ref9205_pin_configs, |
808 | [STAC_9205_DELL_M43] = dell_m43_9205_pin_configs, | 1077 | [STAC_9205_DELL_M42] = dell_9205_m42_pin_configs, |
809 | [STAC_9205_DELL_M44] = dell_m44_9205_pin_configs, | 1078 | [STAC_9205_DELL_M43] = dell_9205_m43_pin_configs, |
1079 | [STAC_9205_DELL_M44] = dell_9205_m44_pin_configs, | ||
810 | [STAC_9205_M43xx] = NULL, | 1080 | [STAC_9205_M43xx] = NULL, |
811 | }; | 1081 | }; |
812 | 1082 | ||
813 | static const char *stac9205_models[STAC_9205_MODELS] = { | 1083 | static const char *stac9205_models[STAC_9205_MODELS] = { |
814 | [STAC_9205_REF] = "ref", | 1084 | [STAC_9205_REF] = "ref", |
1085 | [STAC_9205_DELL_M42] = "dell-m42", | ||
815 | [STAC_9205_DELL_M43] = "dell-m43", | 1086 | [STAC_9205_DELL_M43] = "dell-m43", |
816 | [STAC_9205_DELL_M44] = "dell-m44", | 1087 | [STAC_9205_DELL_M44] = "dell-m44", |
817 | }; | 1088 | }; |
@@ -820,16 +1091,24 @@ static struct snd_pci_quirk stac9205_cfg_tbl[] = { | |||
820 | /* SigmaTel reference board */ | 1091 | /* SigmaTel reference board */ |
821 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, | 1092 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, |
822 | "DFI LanParty", STAC_9205_REF), | 1093 | "DFI LanParty", STAC_9205_REF), |
1094 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f1, | ||
1095 | "unknown Dell", STAC_9205_DELL_M42), | ||
1096 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f2, | ||
1097 | "unknown Dell", STAC_9205_DELL_M42), | ||
823 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f8, | 1098 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f8, |
824 | "Dell Precision", STAC_9205_M43xx), | 1099 | "Dell Precision", STAC_9205_M43xx), |
825 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f9, | 1100 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f9, |
826 | "Dell Precision", STAC_9205_DELL_M43), | 1101 | "Dell Precision", STAC_9205_DELL_M43), |
827 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fa, | 1102 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fa, |
828 | "Dell Precision", STAC_9205_DELL_M43), | 1103 | "Dell Precision", STAC_9205_DELL_M43), |
1104 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fc, | ||
1105 | "unknown Dell", STAC_9205_DELL_M42), | ||
1106 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fd, | ||
1107 | "unknown Dell", STAC_9205_DELL_M42), | ||
829 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fe, | 1108 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fe, |
830 | "Dell Precision", STAC_9205_DELL_M43), | 1109 | "Dell Precision", STAC_9205_DELL_M43), |
831 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ff, | 1110 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ff, |
832 | "Dell Precision", STAC_9205_DELL_M43), | 1111 | "Dell Precision M4300", STAC_9205_DELL_M43), |
833 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0206, | 1112 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0206, |
834 | "Dell Precision", STAC_9205_DELL_M43), | 1113 | "Dell Precision", STAC_9205_DELL_M43), |
835 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f1, | 1114 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f1, |
@@ -840,6 +1119,8 @@ static struct snd_pci_quirk stac9205_cfg_tbl[] = { | |||
840 | "Dell Inspiron", STAC_9205_DELL_M44), | 1119 | "Dell Inspiron", STAC_9205_DELL_M44), |
841 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fd, | 1120 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01fd, |
842 | "Dell Inspiron", STAC_9205_DELL_M44), | 1121 | "Dell Inspiron", STAC_9205_DELL_M44), |
1122 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0204, | ||
1123 | "unknown Dell", STAC_9205_DELL_M42), | ||
843 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x021f, | 1124 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x021f, |
844 | "Dell Inspiron", STAC_9205_DELL_M44), | 1125 | "Dell Inspiron", STAC_9205_DELL_M44), |
845 | {} /* terminator */ | 1126 | {} /* terminator */ |