From: Takashi Iwai <tiwai@suse.de>
To: Padhia Luo <lcj20010426@gmail.com>
Cc: alsa-devel@alsa-project.org, tiwai@suse.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ALSA: hda/realtek: Fix speaker mute LED on Lenovo ThinkBook 14 G8+ IPH
Date: Thu, 30 Jul 2026 17:45:20 +0200 [thread overview]
Message-ID: <87tspg1nxr.wl-tiwai@suse.de> (raw)
In-Reply-To: <20260730071453.19636-1-lcj20010426@gmail.com>
On Thu, 30 Jul 2026 09:14:53 +0200,
Padhia Luo wrote:
>
> On the ThinkBook 14 G8+ IPH (SSID 17aa:393e, ALC287) the F1 speaker mute
> LED never lights up, while the F4 mic mute LED works.
>
> Both LEDs are platform LEDs registered by lenovo-wmi-hotkey-utilities and
> default to the audio-mute / audio-micmute triggers, so the speaker LED only
> follows a control carrying SNDRV_CTL_ELEM_ACCESS_SPK_LED. No control on
> this machine has that flag set, so snd_ctl_led never attaches anything and
> /sys/class/sound/ctl-led/speaker/card0/list stays empty. The mic LED is
> unaffected because MIC_LED is set from the SOF topology on the DMIC
> control, which does not go through the codec fixups at all.
>
> The pin configuration of this machine matches the ThinkPad pin quirk that
> selects ALC285_FIXUP_THINKPAD_HEADSET_JACK - pin_config_match() masks out
> the sequence/association nibbles, so 0x14=0x90170120 still matches the
> 0x90170110 in the table. That fixup chains into ALC269_FIXUP_THINKPAD_ACPI,
> but hda_fixup_thinkpad_acpi() returns early because is_thinkpad() is false:
> a ThinkBook exposes neither LEN0068/LEN0268 nor IBM0068. Therefore
> snd_hda_gen_add_mute_led_cdev() is never called and spec->vmaster_mute_led
> stays 0.
>
> The vendor fallback SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo XPAD",
> ALC269_FIXUP_LENOVO_XPAD_ACPI) would have handled this correctly - the
> machine does expose LHK2019 and VPC2004, so is_ideapad() is true - but it
> never runs: the pin quirk has already set codec->fixup_id, and
> snd_hda_pick_fixup() returns immediately in that case.
>
> Add an SSID quirk selecting a fixup that keeps everything the machine
> currently gets (headset jack handling plus the X1 Gen7 DAC routing) and
> additionally runs the ideapad ACPI setup. It chains into
> ALC287_FIXUP_LENOVO_YOGA_PRO7, which already combines
> alc285_fixup_thinkpad_x1_gen7 with ALC269_FIXUP_LENOVO_XPAD_ACPI, so the
> resulting chain differs from the current one only by the added ideapad step
> and cannot regress the analog output or the headset jack.
>
> Tested on 7.1.5 on the affected machine: the speaker LED group is now
> populated at probe time without any userspace help, and the F1 LED
> follows the mute state. Compared against a boot with the previous fixup
> selection, the mixer control list (names and numids) and the registered
> jack input devices are identical.
>
> Note that the underlying mismatch is not specific to this SSID. Any Lenovo
> non-ThinkPad whose pins collide with a ThinkPad pin quirk loses its mute
> LED the same way. Letting hda_fixup_thinkpad_acpi() fall back to the
> ideapad check would cover the whole class at once, but that touches a
> helper shared with every ThinkPad, so this patch only fixes the machine
> that was actually tested.
>
> Signed-off-by: Padhia Luo <lcj20010426@gmail.com>
Applied to for-next branch. Thanks.
Takashi
prev parent reply other threads:[~2026-07-30 15:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 7:14 [PATCH] ALSA: hda/realtek: Fix speaker mute LED on Lenovo ThinkBook 14 G8+ IPH Padhia Luo
2026-07-30 15:45 ` Takashi Iwai [this message]
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=87tspg1nxr.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=lcj20010426@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tiwai@suse.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.