| From 9c6b8e84981e0d9b4b4d30f3dcc5f50017b86e88 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 23 Aug 2023 20:40:51 +0900 |
| Subject: ALSA: hda/realtek: Add quirk for HP Victus 16-d1xxx to enable mute |
| LED |
| |
| From: SungHwan Jung <onenowy@gmail.com> |
| |
| [ Upstream commit 93dc18e11b1ab2d485b69f91c973e6b83e47ebd0 ] |
| |
| This quirk enables mute LED on HP Victus 16-d1xxx (8A25) laptops, which |
| use ALC245 codec. |
| |
| Signed-off-by: SungHwan Jung <onenowy@gmail.com> |
| Link: https://lore.kernel.org/r/20230823114051.3921-1-onenowy@gmail.com |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Stable-dep-of: d93eeca627db ("ALSA: hda/realtek - ALC287 merge RTK codec with CS CS35L41 AMP") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/pci/hda/patch_realtek.c | 22 ++++++++++++++++++++++ |
| 1 file changed, 22 insertions(+) |
| |
| diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c |
| index 33fbf42fe502b..39d2ac6ae99a8 100644 |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -4639,6 +4639,22 @@ static void alc236_fixup_hp_mute_led_coefbit2(struct hda_codec *codec, |
| } |
| } |
| |
| +static void alc245_fixup_hp_mute_led_coefbit(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_coef.idx = 0x0b; |
| + spec->mute_led_coef.mask = 3 << 2; |
| + spec->mute_led_coef.on = 2 << 2; |
| + spec->mute_led_coef.off = 1 << 2; |
| + snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set); |
| + } |
| +} |
| + |
| /* turn on/off mic-mute LED per capture hook by coef bit */ |
| static int coef_micmute_led_set(struct led_classdev *led_cdev, |
| enum led_brightness brightness) |
| @@ -7227,6 +7243,7 @@ enum { |
| ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS, |
| ALC236_FIXUP_DELL_DUAL_CODECS, |
| ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI, |
| + ALC245_FIXUP_HP_MUTE_LED_COEFBIT, |
| }; |
| |
| /* A special fixup for Lenovo C940 and Yoga Duet 7; |
| @@ -9296,6 +9313,10 @@ static const struct hda_fixup alc269_fixups[] = { |
| .chained = true, |
| .chain_id = ALC269_FIXUP_THINKPAD_ACPI, |
| }, |
| + [ALC245_FIXUP_HP_MUTE_LED_COEFBIT] = { |
| + .type = HDA_FIXUP_FUNC, |
| + .v.func = alc245_fixup_hp_mute_led_coefbit, |
| + }, |
| }; |
| |
| static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
| @@ -9562,6 +9583,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
| SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), |
| SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), |
| SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), |
| + SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT), |
| SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), |
| SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED), |
| SND_PCI_QUIRK(0x103c, 0x8aa3, "HP ProBook 450 G9 (MB 8AA1)", ALC236_FIXUP_HP_GPIO_LED), |
| -- |
| 2.40.1 |
| |