diff options
author | Hui Wang <hui.wang@canonical.com> | 2014-11-18 04:57:40 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-11-18 05:05:45 -0500 |
commit | 4a83d42ae2041d5b76f1a0662bc3a5a85e4eb0d1 (patch) | |
tree | 8141090109f291aee738d802d97b75b032fd118b /sound/pci/hda | |
parent | 39ae97ea4b773be81bae9eec08ed1e5c53606c1a (diff) |
ALSA: hda - move DELL_WMI_MIC_MUTE_LED to the tail in the quirk chain
We have one more Dell machine needs DELL_WMI_MIC_MUTE_LED quirk, but
the machine uses alc293 instead of alc255. So if
DELL_WMI_MIC_MUTE_LED still chain ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
the machine can't use this quirk.
To change this situation, let the DELL_WMI_MIC_MUTE_LED to be a
standalone quirk, and let other quirks chain it.
After this change, this quirk can be chained to any existing quirks,
and as a result, it is possible that this quirk is applied to
a non-Dell machine or a Dell machine without mic mute led on it, but
it is still safe since alc_fixup_dell_wmi() will return an error in
these situations.
And remove the quirk for machine with subsystem id 0x6010 and 0x601f,
these two machines will fall back to the quirk
ALC255_FIXUP_DELL1_MIC_NO_PRESENCE-->ALC255_FIXUP_HEADSET_MODE-->
ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED through pin_fixup_tbl[].
BugLink: https://bugs.launchpad.net/bugs/1381856
Reported-and-tested-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 172395465e8a..9da5798c370a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4709,6 +4709,8 @@ static const struct hda_fixup alc269_fixups[] = { | |||
4709 | [ALC255_FIXUP_HEADSET_MODE] = { | 4709 | [ALC255_FIXUP_HEADSET_MODE] = { |
4710 | .type = HDA_FIXUP_FUNC, | 4710 | .type = HDA_FIXUP_FUNC, |
4711 | .v.func = alc_fixup_headset_mode_alc255, | 4711 | .v.func = alc_fixup_headset_mode_alc255, |
4712 | .chained = true, | ||
4713 | .chain_id = ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED | ||
4712 | }, | 4714 | }, |
4713 | [ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC] = { | 4715 | [ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC] = { |
4714 | .type = HDA_FIXUP_FUNC, | 4716 | .type = HDA_FIXUP_FUNC, |
@@ -4744,8 +4746,6 @@ static const struct hda_fixup alc269_fixups[] = { | |||
4744 | [ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED] = { | 4746 | [ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED] = { |
4745 | .type = HDA_FIXUP_FUNC, | 4747 | .type = HDA_FIXUP_FUNC, |
4746 | .v.func = alc_fixup_dell_wmi, | 4748 | .v.func = alc_fixup_dell_wmi, |
4747 | .chained_before = true, | ||
4748 | .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE | ||
4749 | }, | 4749 | }, |
4750 | [ALC282_FIXUP_ASPIRE_V5_PINS] = { | 4750 | [ALC282_FIXUP_ASPIRE_V5_PINS] = { |
4751 | .type = HDA_FIXUP_PINS, | 4751 | .type = HDA_FIXUP_PINS, |
@@ -4783,10 +4783,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
4783 | SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4783 | SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4784 | SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4784 | SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4785 | SND_PCI_QUIRK(0x1028, 0x05f6, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4785 | SND_PCI_QUIRK(0x1028, 0x05f6, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4786 | SND_PCI_QUIRK(0x1028, 0x0610, "Dell", ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED), | ||
4787 | SND_PCI_QUIRK(0x1028, 0x0615, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK), | 4786 | SND_PCI_QUIRK(0x1028, 0x0615, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK), |
4788 | SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK), | 4787 | SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK), |
4789 | SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED), | ||
4790 | SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK), | 4788 | SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK), |
4791 | SND_PCI_QUIRK(0x1028, 0x064a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), | 4789 | SND_PCI_QUIRK(0x1028, 0x064a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), |
4792 | SND_PCI_QUIRK(0x1028, 0x064b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), | 4790 | SND_PCI_QUIRK(0x1028, 0x064b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), |