aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-08-23 13:04:28 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 09:59:26 -0400
commitdfe495d0a51e20325b51760f34a2f53bfe1f3b52 (patch)
tree7345b903c8c22734ae249ab339aa9cd1b8723941 /sound/pci
parent889c43955115ea7412d71335e3ceff6bad118dce (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.c345
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
40enum { 40enum {
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
45enum { 55enum {
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*/
479static 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*/
489static 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*/
503static 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*/
514static 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*/
527static 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*/
537static 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*/
549static 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*/
560static 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*/
570static 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*/
579static unsigned int dell9200_m27_pin_configs[8] = {
580 0x40c003fa, 0x01441340, 0x04a11020, 0x90170310,
581 0x40f003fc, 0x0421121f, 0x90170310, 0x408003fb,
582};
583
584
459static unsigned int *stac9200_brd_tbl[STAC_9200_MODELS] = { 585static 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
463static const char *stac9200_models[STAC_9200_MODELS] = { 599static 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
467static struct snd_pci_quirk stac9200_cfg_tbl[] = { 613static 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*/
742static 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*/
753static 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*/
763static 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*/
773static unsigned int dell_922x_m82_pin_configs[10] = {
774 0x0221121f, 0x408103ff, 0x02111212, 0x90100310,
775 0x408003f1, 0x02111211, 0x03451340, 0x40c003f2,
776 0x508003f3, 0x405003f4,
777};
778
551static unsigned int d945gtp3_pin_configs[10] = { 779static 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
593static unsigned int stac922x_dell_pin_configs[10] = {
594 0x0221121e, 0x408103ff, 0x02a1123e, 0x90100310,
595 0x408003f1, 0x0221122f, 0x03451340, 0x40c003f2,
596 0x50a003f3, 0x405003f4
597};
598 821
599static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { 822static 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
618static const char *stac922x_models[STAC_922X_MODELS] = { 844static 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
637static struct snd_pci_quirk stac922x_cfg_tbl[] = { 866static 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
793static 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*/
1047static 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*/
1063static 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
799static unsigned int dell_m44_9205_pin_configs[12] = { 1069static 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
806static unsigned int *stac9205_brd_tbl[STAC_9205_MODELS] = { 1075static 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
813static const char *stac9205_models[STAC_9205_MODELS] = { 1083static 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 */