Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ALSA: hda/realtek: enable mute LED support on ThinkBook 16p

On ThinkBook 16p systems the platform mute LED is present and
bound to the audio-mute trigger, but it does not react to Master
mute changes.

The affected fixup chain sets up the DAC routing, but does not enable
vmaster mute LED handling. Because of that, the generic HDA code does
not mark Master Playback Switch with SNDRV_CTL_ELEM_ACCESS_SPK_LED,
and the audio-mute trigger never receives speaker mute updates.

Add a ThinkBook-specific wrapper around alc287_fixup_bind_dacs() and
enable spec->gen.vmaster_mute_led during PRE_PROBE. This keeps the
existing DAC binding logic unchanged while allowing the normal generic
LED path to drive the mute LED.

Signed-off-by: Yuxuan Qiu <yuxuanqiu596@gmail.com>
Link: https://patch.msgid.link/20260424112107.22206-1-yuxuanqiu596@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Yuxuan Qiu and committed by
Takashi Iwai
597aa74b 26265dd6

+12 -1
+12 -1
sound/hda/codecs/realtek/alc269.c
··· 3694 3694 spec->power_hook = alc287_s4_power_gpio3_default; 3695 3695 spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook; 3696 3696 } 3697 + 3698 + static void alc287_fixup_tb_vmaster_led(struct hda_codec *codec, 3699 + const struct hda_fixup *fix, int action) 3700 + { 3701 + struct alc_spec *spec = codec->spec; 3702 + 3703 + if (action == HDA_FIXUP_ACT_PRE_PROBE) 3704 + spec->gen.vmaster_mute_led = 1; 3705 + 3706 + alc287_fixup_bind_dacs(codec, fix, action); 3707 + } 3697 3708 /* GPIO2: mute led GPIO3: micmute led */ 3698 3709 static void alc245_tas2781_spi_hp_fixup_muteled(struct hda_codec *codec, 3699 3710 const struct hda_fixup *fix, int action) ··· 6459 6448 }, 6460 6449 [ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD] = { 6461 6450 .type = HDA_FIXUP_FUNC, 6462 - .v.func = alc287_fixup_bind_dacs, 6451 + .v.func = alc287_fixup_tb_vmaster_led, 6463 6452 .chained = true, 6464 6453 .chain_id = ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI, 6465 6454 },