X86 platform drivers
 help / color / mirror / Atom feed
From: bugzilla-daemon@kernel.org
To: platform-driver-x86@vger.kernel.org
Subject: [Bug 222044] hp-wmi: Mute and mic-mute LEDs not supported on HP Laptop 15-fc0xxx (board 8DC9)
Date: Wed, 07 Oct 2026 06:44:55 +0000	[thread overview]
Message-ID: <bug-222044-215701-92cVsQbC2h@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-222044-215701@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=222044

--- Comment #5 from Piyush (aryanbabupiyushbabu@gmail.com) ---
Update on kernel fixup implementation and testing:

I built and tested a custom patch against sound/hda/codecs/realtek/alc269.c
incorporating both identified controls.

======================================================================
1. CODE IMPLEMENTATION
======================================================================

Added fixup function:
---------------------
static void alc236_fixup_hp_15_fc0xxx_led(struct hda_codec *codec,
                                         const struct hda_fixup *fix, int
action)
{
        struct alc_spec *spec = codec->spec;

        if (action == HDA_FIXUP_ACT_PRE_PROBE) {
                /* F5 Speaker Mute LED: Node 0x20, COEF 0x07, Bit 0 */
                spec->mute_led_polarity = 0;
                spec->mute_led_coef.idx = 0x07;
                spec->mute_led_coef.mask = 0x01;
                spec->mute_led_coef.on = 0x01;
                spec->mute_led_coef.off = 0x00;
                snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set);

                /* F8 Mic Mute LED: Node 0x01, GPIO 0, Active-Low */
                spec->micmute_led_polarity = 1;
        }

        /* Wire GPIO 0 for mic mute LED */
        alc_fixup_hp_gpio_led(codec, action, 0x00, 0x01);
}

Fixup table chaining and quirk:
-------------------------------
[ALC236_FIXUP_HP_DMIC] = {
        .type = HDA_FIXUP_PINS,
        .v.pins = (const struct hda_pintbl[]) {
                { 0x12, 0x90a60160 }, /* use as internal mic */
                { }
        },
        .chained = true,
        .chain_id = ALC236_FIXUP_HP_MUTE_LED,
},
[ALC236_FIXUP_HP_MUTE_LED] = {
        .type = HDA_FIXUP_FUNC,
        .v.func = alc236_fixup_hp_15_fc0xxx_led,
},

/* Quirk table entry */
SND_PCI_QUIRK(0x103c, 0x8dc9, "HP Laptop 15-fc0xxx", ALC236_FIXUP_HP_DMIC),


======================================================================
2. HARDWARE VERIFICATION
======================================================================

- Speaker Mute LED (F5):
  Works as expected across environments, synchronizing with master playback
mute.

- Mic Mute LED (F8):
  Hardware wiring is verified working via ALSA:
    amixer -c 1 sset Capture toggle
  Directly toggling this switch flips /sys/class/leds/hda::micmute/brightness 
  between 0 and 1, and the physical amber LED turns on and off accordingly.


======================================================================
3. PARTITION & USERSPACE TESTING OBSERVATIONS
======================================================================

I tested this exact kernel build across two different partitions:

- Partition 1:
  Worked as intended out of the box, with the LED tracking mic state cleanly.

- Partition 2 (Primary, running KDE Plasma / PipeWire with ALSA UCM HiFi
profile):
  An unexpected quirk appeared:
  * The machine requires the internal digital microphone fixup at pin 0x12
(ALC236_FIXUP_HP_DMIC: 0x90a60160).
  * ALSA registers both the legacy analog Capture switch (numid=7) and the DMIC
endpoint. On this setup, the analog 'Capture Switch' (numid=7) initialized to
[off] (muted).
  * KDE / WirePlumber manages and mutes the DMIC stream
(alsa_input.*.HiFi__Mic1__source) without touching numid=7.
  * Because the kernel's generic audio-micmute trigger in hda_generic.c
monitors all registered capture switches and sees numid=7 permanently muted,
the F8 LED remained locked ON (brightness 1) at startup regardless of software
mute toggles.


======================================================================
4. FEEDBACK REQUEST
======================================================================

Could you advise on the preferred upstream approach to structure or chain the
micmute LED fixup when ALC236_FIXUP_HP_DMIC is active so the LED remains
synchronized with the DMIC stream state regardless of userspace mixer defaults?

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

  parent reply	other threads:[~2026-10-07  6:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-21 15:05 [Bug 222044] New: hp-wmi: Mute and mic-mute LEDs not supported on HP Laptop 15-fc0xxx (board 8DC9) bugzilla-daemon
2026-09-24 18:42 ` [Bug 222044] " bugzilla-daemon
2026-09-25  2:06 ` bugzilla-daemon
2026-10-06  9:50 ` bugzilla-daemon
2026-10-06 10:27 ` bugzilla-daemon
2026-10-07  6:44 ` bugzilla-daemon [this message]
2026-10-07  7:12 ` bugzilla-daemon
2026-10-07  7:12 ` bugzilla-daemon
2026-10-07  7:12 ` bugzilla-daemon
2026-10-09  1:46 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-222044-215701-92cVsQbC2h@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox