These two machines have no mute LED string in BIOS.
BugLink: https://bugs.launchpad.net/bugs/1128934 Tested-by: Tammy Yang <email address hidden> Signed-off-by: David Henningsson <email address hidden> ---
Should be sent to stable too, but I guess the patch have to be rewritten to fit.
sound/pci/hda/patch_realtek.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 48c9d10..e575685 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2726,6 +2726,18 @@ static void alc269_fixup_hp_mute_led(struct hda_codec *codec, } }
+static void alc269_fixup_hp_mute_led_mic1(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + struct alc_spec *spec = codec->spec; + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + spec->mute_led_polarity = 0; + spec->mute_led_nid = 0x18; + spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; + spec->gen.vmaster_mute_enum = 1; + } +} + static void alc269_fixup_hp_mute_led_mic2(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -2771,6 +2783,7 @@ enum { ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, ALC269_FIXUP_HP_MUTE_LED, + ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC269_FIXUP_HP_MUTE_LED_MIC2, ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, @@ -2903,6 +2916,10 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_hp_mute_led, }, + [ALC269_FIXUP_HP_MUTE_LED_MIC1] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_hp_mute_led_mic1, + }, [ALC269_FIXUP_HP_MUTE_LED_MIC2] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_hp_mute_led_mic2, @@ -2947,6 +2964,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x029b, "Acer 1810TZ", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), + SND_PCI_QUIRK(0x103c, 0x1973, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1), + SND_PCI_QUIRK(0x103c, 0x1983, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK_VENDOR(0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC), -- 1.7.9.5
These two machines have no mute LED string in BIOS.
BugLink: https:/ /bugs.launchpad .net/bugs/ 1128934
Tested-by: Tammy Yang <email address hidden>
Signed-off-by: David Henningsson <email address hidden>
---
Should be sent to stable too, but I guess the patch have to be
rewritten to fit.
sound/ pci/hda/ patch_realtek. c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/sound/ pci/hda/ patch_realtek. c b/sound/ pci/hda/ patch_realtek. c pci/hda/ patch_realtek. c pci/hda/ patch_realtek. c fixup_hp_ mute_led( struct hda_codec *codec,
index 48c9d10..e575685 100644
--- a/sound/
+++ b/sound/
@@ -2726,6 +2726,18 @@ static void alc269_
}
}
+static void alc269_ fixup_hp_ mute_led_ mic1(struct hda_codec *codec, ACT_PRE_ PROBE) { led_polarity = 0; vmaster_ mute.hook = alc269_ fixup_mic_ mute_hook; vmaster_ mute_enum = 1; fixup_hp_ mute_led_ mic2(struct hda_codec *codec, FIXUP_AMIC, FIXUP_DMIC, FIXUP_HP_ MUTE_LED, FIXUP_HP_ MUTE_LED_ MIC1, FIXUP_HP_ MUTE_LED_ MIC2, FIXUP_INV_ DMIC, FIXUP_LENOVO_ DOCK, fixup_hp_ mute_led, FIXUP_HP_ MUTE_LED_ MIC1] = { fixup_hp_ mute_led_ mic1, FIXUP_HP_ MUTE_LED_ MIC2] = { fixup_hp_ mute_led_ mic2, QUIRK(0x1025, 0x029b, "Acer 1810TZ", ALC269_ FIXUP_INV_ DMIC), QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_ FIXUP_INV_ DMIC), QUIRK(0x103c, 0x1586, "HP", ALC269_ FIXUP_HP_ MUTE_LED_ MIC2), QUIRK(0x103c, 0x1973, "HP Pavilion", ALC269_ FIXUP_HP_ MUTE_LED_ MIC1), QUIRK(0x103c, 0x1983, "HP Pavilion", ALC269_ FIXUP_HP_ MUTE_LED_ MIC1), QUIRK_VENDOR( 0x103c, "HP", ALC269_ FIXUP_HP_ MUTE_LED) , QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_ FIXUP_DMIC) , QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_ FIXUP_DMIC) ,
+ const struct hda_fixup *fix, int action)
+{
+ struct alc_spec *spec = codec->spec;
+ if (action == HDA_FIXUP_
+ spec->mute_
+ spec->mute_led_nid = 0x18;
+ spec->gen.
+ spec->gen.
+ }
+}
+
static void alc269_
const struct hda_fixup *fix, int action)
{
@@ -2771,6 +2783,7 @@ enum {
ALC269VB_
ALC269VB_
ALC269_
+ ALC269_
ALC269_
ALC269_
ALC269_
@@ -2903,6 +2916,10 @@ static const struct hda_fixup alc269_fixups[] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc269_
},
+ [ALC269_
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc269_
+ },
[ALC269_
.type = HDA_FIXUP_FUNC,
.v.func = alc269_
@@ -2947,6 +2964,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_
SND_PCI_
SND_PCI_
+ SND_PCI_
+ SND_PCI_
SND_PCI_
SND_PCI_
SND_PCI_
--
1.7.9.5