From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FF383AA504 for ; Fri, 24 Apr 2026 11:21:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777029695; cv=none; b=rIvawwbnVLXmyednbi7yrinro57Fqqh6jn0Blxmt6kSBIuqod7yEs+SgIo9HJ/wN/4SD3NUWsgjdkCoWMQi6UjsshLOdcY9vjBfG8rFRcPVkXwoxUGo8YsomuwDvKo1DX8L+Hc+TqskO5v/3fAS4bOLNsIxUYic7f2jLGEE53MM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777029695; c=relaxed/simple; bh=b49CYPyXZSrk+jmQ8Cm0VKXMjEnzRwFtBgZ5g5pW+1s=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=MkbWHZrKBKKpnS6yZML3Td2wG7euiyHNq28xN3UAoqWoexU93OeCHke42jpWTSYOwobac9Wtjq6S4KNZx4H4cObsqANgiRRW7hmXy5ed3qCdfO1agoW7c2Brc1Z2sphwLdreurK1FCyTYxXj62+yk+3ntmGvk2GQQcxoSHVeMmE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ltzIxOT9; arc=none smtp.client-ip=209.85.160.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ltzIxOT9" Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-50d75bfb259so57774651cf.1 for ; Fri, 24 Apr 2026 04:21:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777029692; x=1777634492; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=UN8Csv0zNcXBJYRBa+x5U5wyxmo3h4IS5Nfd6Ui5Mw4=; b=ltzIxOT9/XJARLwr1kDmfhvyA7tDnIlcfHLAgC4olMakPOAMPZE4s5Kno4b2DgN/Kz InbJR57PjHHD6Diy+ldru8q2re0CiPRtO7hcOcWuQYf0Iu3vg1oYIwqbcilXXh/mtu+l 2TJHBxC+LQsedn1GBkcLnQ+qA1ifTLxphXRpC8/mn600xgFeT0QuJ5WgeiNrwTJ2VTVl a0gz9px9aY8mwOgVwH6bKTb3vw/zpXd8/h83pgPazR5W6Da3SRRxxYQRM8p9t4XEc0oE jmv9jPR5kdPHvqPZLmVI+29p/RAwACqc0o+EDkKpXKeUTUtjgXRWBYuBTLGlDzRN9aEE /HaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777029692; x=1777634492; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UN8Csv0zNcXBJYRBa+x5U5wyxmo3h4IS5Nfd6Ui5Mw4=; b=PR0NZCRP2QnVb4MrnR2aRcbo97gVQS59l3AyJE+FEVpPPG9+fOnqkx7k0fcqSA8rb0 xpu4XH2YEnWoNOMC7Hd7Q8fIaMsa9LOyG55HzUyBRaURoY6bzJMfxv/OspNwIa01CTGy GNQmQmm+WV0uM3q12owvcHXeTNbonpUzNOeNm/w7Q9CIpBXyMpczyWZHn1zOSQy8cHE9 C8qvPJGHR05Qlus4mr3xGkh3Sef8WARCq4FdU7gVxWURZRwV86aHv/E7DFLsJ/zRGkti u0grgcLJeTvftnbjKh3SX6pF+1clVvG5nbVODafAdwgTnNQ4BI6MIE6IrrQEcktAQ+SZ XuHA== X-Forwarded-Encrypted: i=1; AFNElJ/BQ8PX/GxwghL2npiJlaGK9MxURSw+FW5vCy5kIEP8H5ALbpIdYlvDUlnJUWeEJKlxV0AvZ7F3jpGOmRY=@vger.kernel.org X-Gm-Message-State: AOJu0YwPg/OCWuPTPxqWhmKzAOwfYvWvCwIz0zZMYSJmV2PKVELHMX32 h3stSkPkieBYmYoE43Knp5yFnV5GpepYNGsFyUPyqtWQDHOikuauW/52 X-Gm-Gg: AeBDievYerxz78fFWpNYNHPkikfCv5+wcy+Q8So0yBmH6sW+RiQT19p1FM/ueEWnK9i zyS2veAlGB8Q+TRi05XSieNdGtYmiaFzKrTe8K4IusMsb+Grjet19mVVVhVJOJvvEavaMREVVuD LcYUytgnzJUUnsifr2rvcdYMhnqVX6S/GcJFPkX1ZRnq7Dbo1c1zSqTodTevkpn07s2Vfi3tV+h ptkcy5bA1m77m+zP+9ANjTDCLK/dnxhQar5sFv5dGNZdl/uloOUZ6DLPg7BcbJXeAUpsfBKUfDs 6X9hthW9r1Dm9qTBGxj7Cy9JBi6IAqB3qUb+TJjUU2zVUy0ObnQJ1qhg1dbdVgHuwPu+Vh4F30P aEM/RGhapZmPTvrxGFjfK3kqMOuMaRH3iMB9ykIYmiTOsi73RHiVT3twZXEP1x/x+KQoFjw6htb xiuvzJNuho2pbPdo6S9MMvFWlDpdEjLu7w6f0lG/s= X-Received: by 2002:a05:622a:4c8:b0:50d:83d7:686a with SMTP id d75a77b69052e-50e36c08b20mr468048751cf.40.1777029691978; Fri, 24 Apr 2026 04:21:31 -0700 (PDT) Received: from qyx596-laptop ([67.215.248.117]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50e392e351esm182339871cf.7.2026.04.24.04.21.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Apr 2026 04:21:31 -0700 (PDT) From: Yuxuan Qiu To: perex@perex.cz, tiwai@suse.com Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Yuxuan Qiu Subject: [PATCH] ALSA: hda/realtek: enable mute LED support on ThinkBook 16p Date: Fri, 24 Apr 2026 19:21:07 +0800 Message-ID: <20260424112107.22206-1-yuxuanqiu596@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 --- sound/hda/codecs/realtek/alc269.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c index b33f42576..b79a58079 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -3694,6 +3694,17 @@ static void alc287_fixup_lenovo_thinkpad_with_alc1318(struct hda_codec *codec, spec->power_hook = alc287_s4_power_gpio3_default; spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook; } + +static void alc287_fixup_tb_vmaster_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) + spec->gen.vmaster_mute_led = 1; + + alc287_fixup_bind_dacs(codec, fix, action); +} /* GPIO2: mute led GPIO3: micmute led */ static void alc245_tas2781_spi_hp_fixup_muteled(struct hda_codec *codec, const struct hda_fixup *fix, int action) @@ -6447,7 +6458,7 @@ static const struct hda_fixup alc269_fixups[] = { }, [ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD] = { .type = HDA_FIXUP_FUNC, - .v.func = alc287_fixup_bind_dacs, + .v.func = alc287_fixup_tb_vmaster_led, .chained = true, .chain_id = ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI, }, -- 2.53.0