ALSA: hda/realtek: Enable Mute LED on HP OMEN Laptop xd000xx

Sharan Kumar Muthu Saravanan posted 1 patch 8 months, 3 weeks ago
sound/pci/hda/patch_realtek.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
ALSA: hda/realtek: Enable Mute LED on HP OMEN Laptop xd000xx
Posted by Sharan Kumar Muthu Saravanan 8 months, 3 weeks ago
This HP Laptop uses ALC245 codec, and this codec was already used but
on your previous patches which i referred said that led off coef can
be set to 0

Signed-off-by: M SHARAN KUMAR <sharweshraajan@gmail.com>

---
 sound/pci/hda/patch_realtek.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index a84857a3c2bf..8c2375476952 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4739,6 +4739,21 @@ static void
alc245_fixup_hp_mute_led_coefbit(struct hda_codec *codec,
                snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set);
        }
 }
+static void alc245_fixup_hp_mute_led_v1_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 = 1 << 3;
+               spec->mute_led_coef.off = 0;
+               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,
@@ -7883,6 +7898,7 @@ enum {
        ALC245_FIXUP_TAS2781_SPI_2,
        ALC287_FIXUP_YOGA7_14ARB7_I2C,
        ALC245_FIXUP_HP_MUTE_LED_COEFBIT,
+       ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT,
        ALC245_FIXUP_HP_X360_MUTE_LEDS,
        ALC287_FIXUP_THINKPAD_I2S_SPK,
        ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD,
@@ -10126,6 +10142,10 @@ static const struct hda_fixup alc269_fixups[] = {
                .chained = true,
                .chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
        },
+       [ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc245_fixup_hp_mute_led_v1_coefbit,
+       },
        [ALC245_FIXUP_HP_MUTE_LED_COEFBIT] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = alc245_fixup_hp_mute_led_coefbit,
@@ -10569,6 +10589,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
        SND_PCI_QUIRK(0x103c, 0x8a0f, "HP Pavilion 14-ec1xxx",
ALC287_FIXUP_HP_GPIO_LED),
        SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx",
ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
        SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)",
ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
+       SND_PCI_QUIRK(0x103c, 0x8bcd, "HP Omen 16-xd0xxx (MB 8BCD)",
ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT),
        SND_PCI_QUIRK(0x103c, 0x8a28, "HP Envy 13", ALC287_FIXUP_CS35L41_I2C_2),
        SND_PCI_QUIRK(0x103c, 0x8a29, "HP Envy 15", ALC287_FIXUP_CS35L41_I2C_2),
        SND_PCI_QUIRK(0x103c, 0x8a2a, "HP Envy 15", ALC287_FIXUP_CS35L41_I2C_2),
--
Re: ALSA: hda/realtek: Enable Mute LED on HP OMEN Laptop xd000xx
Posted by Takashi Iwai 8 months, 3 weeks ago
On Thu, 27 Mar 2025 18:46:34 +0100,
Sharan Kumar Muthu Saravanan wrote:
> 
> This HP Laptop uses ALC245 codec, and this codec was already used but
> on your previous patches which i referred said that led off coef can
> be set to 0

It's not clear which previous patches and which you referred to.
Could you elaborate, e.g. give the commit ID and the subject?  If any,
we need Fixes tag pointing to it.

> Signed-off-by: M SHARAN KUMAR <sharweshraajan@gmail.com>

Please align with your From tag for avoiding confusion.

> ---
>  sound/pci/hda/patch_realtek.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index a84857a3c2bf..8c2375476952 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4739,6 +4739,21 @@ static void
> alc245_fixup_hp_mute_led_coefbit(struct hda_codec *codec,
>                 snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set);
>         }
>  }
> +static void alc245_fixup_hp_mute_led_v1_coefbit(struct hda_codec *codec,
> +                                           const struct hda_fixup *fix,
> +                                               int action)

Please put a blank line, as I already pointed in the previous reply.


> +{
> +       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 = 1 << 3;
> +               spec->mute_led_coef.off = 0;
> +               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,
> @@ -7883,6 +7898,7 @@ enum {
>         ALC245_FIXUP_TAS2781_SPI_2,
>         ALC287_FIXUP_YOGA7_14ARB7_I2C,
>         ALC245_FIXUP_HP_MUTE_LED_COEFBIT,
> +       ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT,
>         ALC245_FIXUP_HP_X360_MUTE_LEDS,
>         ALC287_FIXUP_THINKPAD_I2S_SPK,
>         ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD,
> @@ -10126,6 +10142,10 @@ static const struct hda_fixup alc269_fixups[] = {
>                 .chained = true,
>                 .chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
>         },
> +       [ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT] = {
> +               .type = HDA_FIXUP_FUNC,
> +               .v.func = alc245_fixup_hp_mute_led_v1_coefbit,
> +       },
>         [ALC245_FIXUP_HP_MUTE_LED_COEFBIT] = {
>                 .type = HDA_FIXUP_FUNC,
>                 .v.func = alc245_fixup_hp_mute_led_coefbit,
> @@ -10569,6 +10589,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
>         SND_PCI_QUIRK(0x103c, 0x8a0f, "HP Pavilion 14-ec1xxx",
> ALC287_FIXUP_HP_GPIO_LED),
>         SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx",
> ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
>         SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)",
> ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
> +       SND_PCI_QUIRK(0x103c, 0x8bcd, "HP Omen 16-xd0xxx (MB 8BCD)",
> ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT),

The table is sorted in PCI SSID order.  Please put at the right
position.


thanks,

Takashi