aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-11-25 09:20:57 -0500
committerTakashi Iwai <tiwai@suse.de>2008-11-25 09:20:57 -0500
commiteefe93b9957e6f14780b7d37aeda0f27f341953d (patch)
tree4b73293616abc911ead9d559a58b897885d7ad86
parentee09543c866559e1ffb4f5c38533f2bedd725acd (diff)
parent661cd8fb5210af78f0763071642e0764a10389a6 (diff)
Merge branch 'topic/fix/hda' into topic/hda
Conflicts: sound/pci/hda/patch_sigmatel.c
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt4
-rw-r--r--sound/pci/hda/patch_sigmatel.c47
2 files changed, 29 insertions, 22 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 93624e7b4f04..773a6201aede 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -1083,7 +1083,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1083 1083
1084 STAC92HD73* 1084 STAC92HD73*
1085 ref Reference board 1085 ref Reference board
1086 dell-m6 Dell desktops 1086 dell-m6-amic Dell desktops/laptops with analog mics
1087 dell-m6-dmic Dell desktops/laptops with digital mics
1088 dell-m6 Dell desktops/laptops with both type of mics
1087 1089
1088 STAC9872 1090 STAC9872
1089 vaio Setup for VAIO FE550G/SZ110 1091 vaio Setup for VAIO FE550G/SZ110
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 4b7dda57c0e9..70181d500536 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -71,7 +71,9 @@ enum {
71 71
72enum { 72enum {
73 STAC_92HD73XX_REF, 73 STAC_92HD73XX_REF,
74 STAC_DELL_M6, 74 STAC_DELL_M6_AMIC,
75 STAC_DELL_M6_DMIC,
76 STAC_DELL_M6_BOTH,
75 STAC_DELL_EQ, 77 STAC_DELL_EQ,
76 STAC_92HD73XX_MODELS 78 STAC_92HD73XX_MODELS
77}; 79};
@@ -1656,13 +1658,17 @@ static unsigned int dell_m6_pin_configs[13] = {
1656 1658
1657static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { 1659static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
1658 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, 1660 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
1659 [STAC_DELL_M6] = dell_m6_pin_configs, 1661 [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
1662 [STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
1663 [STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
1660 [STAC_DELL_EQ] = dell_m6_pin_configs, 1664 [STAC_DELL_EQ] = dell_m6_pin_configs,
1661}; 1665};
1662 1666
1663static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { 1667static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
1664 [STAC_92HD73XX_REF] = "ref", 1668 [STAC_92HD73XX_REF] = "ref",
1665 [STAC_DELL_M6] = "dell-m6", 1669 [STAC_DELL_M6_AMIC] = "dell-m6-amic",
1670 [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
1671 [STAC_DELL_M6_BOTH] = "dell-m6",
1666 [STAC_DELL_EQ] = "dell-eq", 1672 [STAC_DELL_EQ] = "dell-eq",
1667}; 1673};
1668 1674
@@ -1671,21 +1677,23 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1671 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 1677 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
1672 "DFI LanParty", STAC_92HD73XX_REF), 1678 "DFI LanParty", STAC_92HD73XX_REF),
1673 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, 1679 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
1674 "Dell Studio 1535", STAC_DELL_M6), 1680 "Dell Studio 1535", STAC_DELL_M6_DMIC),
1675 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, 1681 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
1676 "unknown Dell", STAC_DELL_M6), 1682 "unknown Dell", STAC_DELL_M6_DMIC),
1677 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256, 1683 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
1678 "unknown Dell", STAC_DELL_M6), 1684 "unknown Dell", STAC_DELL_M6_BOTH),
1679 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257, 1685 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257,
1680 "unknown Dell", STAC_DELL_M6), 1686 "unknown Dell", STAC_DELL_M6_BOTH),
1681 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e, 1687 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e,
1682 "unknown Dell", STAC_DELL_M6), 1688 "unknown Dell", STAC_DELL_M6_AMIC),
1683 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f, 1689 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f,
1684 "unknown Dell", STAC_DELL_M6), 1690 "unknown Dell", STAC_DELL_M6_AMIC),
1685 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271, 1691 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
1686 "unknown Dell", STAC_DELL_M6), 1692 "unknown Dell", STAC_DELL_M6_DMIC),
1693 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272,
1694 "unknown Dell", STAC_DELL_M6_DMIC),
1687 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f, 1695 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
1688 "Dell Studio 15", STAC_DELL_M6), 1696 "Dell Studio 1537", STAC_DELL_M6_DMIC),
1689 {} /* terminator */ 1697 {} /* terminator */
1690}; 1698};
1691 1699
@@ -4513,7 +4521,9 @@ again:
4513 case STAC_DELL_EQ: 4521 case STAC_DELL_EQ:
4514 spec->init = dell_eq_core_init; 4522 spec->init = dell_eq_core_init;
4515 /* fallthru */ 4523 /* fallthru */
4516 case STAC_DELL_M6: 4524 case STAC_DELL_M6_AMIC:
4525 case STAC_DELL_M6_DMIC:
4526 case STAC_DELL_M6_BOTH:
4517 spec->num_smuxes = 0; 4527 spec->num_smuxes = 0;
4518 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; 4528 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER];
4519 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; 4529 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
@@ -4522,23 +4532,18 @@ again:
4522 4532
4523 if (!spec->init) 4533 if (!spec->init)
4524 spec->init = dell_m6_core_init; 4534 spec->init = dell_m6_core_init;
4525 switch (codec->subsystem_id) { 4535 switch (spec->board_config) {
4526 case 0x1028025e: /* Analog Mics */ 4536 case STAC_DELL_M6_AMIC: /* Analog Mics */
4527 case 0x1028025f:
4528 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); 4537 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
4529 spec->num_dmics = 0; 4538 spec->num_dmics = 0;
4530 spec->private_dimux.num_items = 1; 4539 spec->private_dimux.num_items = 1;
4531 break; 4540 break;
4532 case 0x10280271: /* Digital Mics */ 4541 case STAC_DELL_M6_DMIC: /* Digital Mics */
4533 case 0x10280272:
4534 case 0x10280254:
4535 case 0x10280255:
4536 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4542 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
4537 spec->num_dmics = 1; 4543 spec->num_dmics = 1;
4538 spec->private_dimux.num_items = 2; 4544 spec->private_dimux.num_items = 2;
4539 break; 4545 break;
4540 case 0x10280256: /* Both */ 4546 case STAC_DELL_M6_BOTH: /* Both */
4541 case 0x10280057:
4542 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); 4547 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
4543 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4548 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
4544 spec->num_dmics = 1; 4549 spec->num_dmics = 1;