[alsa-devel] [PATCH] ALSA: hda/realtek - Add disable auto-mute quirk for HP Spectre x360 laptop
This device makes a loud buzzing sound when a headphone is inserted while playing audio at full volume through the speaker.
Signed-off-by: Girija Kumar Kasinadhuni gkumar@neverware.com --- sound/pci/hda/patch_realtek.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index fa61674..eeff2ff 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5495,6 +5495,7 @@ enum { ALC255_FIXUP_DELL_HEADSET_MIC, ALC295_FIXUP_HP_X360, ALC221_FIXUP_HP_HEADSET_MIC, + ALC295_FIXUP_HP_DISABLE_AUTOMUTE, };
static const struct hda_fixup alc269_fixups[] = { @@ -6362,6 +6363,10 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MIC }, + [ALC295_FIXUP_HP_DISABLE_AUTOMUTE] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_auto_mute_via_amp, + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6486,6 +6491,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x82bf, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x82c0, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3), + SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre X360 ", ALC295_FIXUP_HP_DISABLE_AUTOMUTE), SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
This device makes a loud buzzing sound when a headphone is inserted while playing audio at full volume through the speaker.
Signed-off-by: Girija Kumar Kasinadhuni gkumar@neverware.com --- Changes in v2: - changed commit message - removed "disable" from description
sound/pci/hda/patch_realtek.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index fa61674..69bb005 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5495,6 +5495,7 @@ enum { ALC255_FIXUP_DELL_HEADSET_MIC, ALC295_FIXUP_HP_X360, ALC221_FIXUP_HP_HEADSET_MIC, + ALC295_FIXUP_HP_AUTO_MUTE, };
static const struct hda_fixup alc269_fixups[] = { @@ -6362,6 +6363,10 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MIC }, + [ALC295_FIXUP_HP_AUTO_MUTE] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_auto_mute_via_amp, + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6486,6 +6491,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x82bf, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x82c0, "HP", ALC221_FIXUP_HP_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3), + SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre X360 ", ALC295_FIXUP_HP_AUTO_MUTE), SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
On Wed, 21 Nov 2018 18:49:11 +0100, Girija Kumar Kasinadhuni wrote:
So this adds a new entry with the very same ID as the previous entry. This won't work, unfortunately. The quirk is chosen only for the first matching one.
For making it working, you'd need to add to the chain of the existing quirk instead.
And this shows that the patch wasn't properly tested... Please check the actual behavior before submitting the final version.
thanks,
Takashi
This device makes a loud buzzing sound when a headphone is inserted while playing audio at full volume through the speaker.
Signed-off-by: Girija Kumar Kasinadhuni gkumar@neverware.com --- Apologies for the earlier patch not being tested properly. Verified this time, and on the actual hardware. Here' s the alsa-info output. http://www.alsa-project.org/db/?f=16bc34d9bf8c9b2536969c125c1721fee570c9b0
sound/pci/hda/patch_realtek.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 970bc44..c39f7f2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5495,6 +5495,7 @@ enum { ALC255_FIXUP_DELL_HEADSET_MIC, ALC295_FIXUP_HP_X360, ALC221_FIXUP_HP_HEADSET_MIC, + ALC295_FIXUP_HP_AUTO_MUTE, };
static const struct hda_fixup alc269_fixups[] = { @@ -5659,6 +5660,8 @@ static const struct hda_fixup alc269_fixups[] = { [ALC269_FIXUP_HP_MUTE_LED_MIC3] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_hp_mute_led_mic3, + .chained = true, + .chain_id = ALC295_FIXUP_HP_AUTO_MUTE }, [ALC269_FIXUP_HP_GPIO_LED] = { .type = HDA_FIXUP_FUNC, @@ -6362,6 +6365,10 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MIC }, + [ALC295_FIXUP_HP_AUTO_MUTE] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_auto_mute_via_amp, + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
participants (2)
-
Girija Kumar Kasinadhuni
-
Takashi Iwai