]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: hda/realtek: Add mute LED fixup for HP Pavilion 15-cs1xxx
authorRodrigo Faria <rodrigofilipefaria@gmail.com>
Tue, 5 May 2026 18:55:18 +0000 (19:55 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 6 May 2026 07:57:43 +0000 (09:57 +0200)
Add a new fixup for the mute LED on the HP Pavilion 15-cs1xxx series
using the VREF on NID 0x1b.

The BIOS on these models (tested up to F.32) incorrectly reports
the mute LED on NID 0x18 via DMI OEM strings, which lacks VREF
capabilities. This fixup overrides the LED pin to the correct
NID 0x1b.

Signed-off-by: Rodrigo Faria <rodrigofilipefaria@gmail.com>
Link: https://patch.msgid.link/20260505185518.23625-1-rodrigofilipefaria@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/hda/codecs/realtek/alc269.c

index a7525ed83e2be3a4066a23b7aa3970147ae8ed72..11d0ea8ed8598a8bef156517bcb7dad807e7245a 100644 (file)
@@ -1669,6 +1669,21 @@ static void alc295_fixup_hp_mute_led_coefbit11(struct hda_codec *codec,
        }
 }
 
+/* Override wrong pin to NID 0x1b (F.32 BIOS reports 0x18 via DMI OEM string)
+ * on HP pavilion 15-cs1xxx laptops
+ */
+static void alc295_fixup_hp_pavilion_mute_led_1b(struct hda_codec *codec,
+                                                const struct hda_fixup *fix,
+                                                int action)
+{
+       struct alc_spec *spec = codec->spec;
+
+       alc269_fixup_hp_mute_led(codec, fix, action);
+
+       if (action == HDA_FIXUP_ACT_PRE_PROBE)
+               spec->mute_led_nid = 0x1b;
+}
+
 static void alc233_fixup_lenovo_coef_micmute_led(struct hda_codec *codec,
                                const struct hda_fixup *fix, int action)
 {
@@ -3870,6 +3885,7 @@ enum {
        ALC290_FIXUP_SUBWOOFER,
        ALC290_FIXUP_SUBWOOFER_HSJACK,
        ALC295_FIXUP_HP_MUTE_LED_COEFBIT11,
+       ALC295_FIXUP_HP_PAVILION_MUTE_LED_1B,
        ALC269_FIXUP_THINKPAD_ACPI,
        ALC269_FIXUP_LENOVO_XPAD_ACPI,
        ALC269_FIXUP_DMIC_THINKPAD_ACPI,
@@ -5715,6 +5731,10 @@ static const struct hda_fixup alc269_fixups[] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = alc295_fixup_hp_mute_led_coefbit11,
        },
+       [ALC295_FIXUP_HP_PAVILION_MUTE_LED_1B] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc295_fixup_hp_pavilion_mute_led_1b,
+       },
        [ALC298_FIXUP_SAMSUNG_AMP] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = alc298_fixup_samsung_amp,
@@ -6931,6 +6951,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
        SND_PCI_QUIRK(0x103c, 0x8537, "HP ProBook 440 G6", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
        SND_PCI_QUIRK(0x103c, 0x8548, "HP EliteBook x360 830 G6", ALC285_FIXUP_HP_GPIO_LED),
        SND_PCI_QUIRK(0x103c, 0x854a, "HP EliteBook 830 G6", ALC285_FIXUP_HP_GPIO_LED),
+       SND_PCI_QUIRK(0x103c, 0x856a, "HP Pavilion 15-cs1xxx", ALC295_FIXUP_HP_PAVILION_MUTE_LED_1B),
        SND_PCI_QUIRK(0x103c, 0x85c6, "HP Pavilion x360 Convertible 14-dy1xxx", ALC295_FIXUP_HP_MUTE_LED_COEFBIT11),
        SND_PCI_QUIRK(0x103c, 0x85de, "HP Envy x360 13-ar0xxx", ALC285_FIXUP_HP_ENVY_X360),
        SND_PCI_QUIRK(0x103c, 0x8603, "HP Omen 17-cb0xxx", ALC285_FIXUP_HP_MUTE_LED),