* [PATCH 1/2] platform/x86: asus-wmi: Add mute LED support
2026-09-15 17:41 [PATCH 0/2] Add ASUS ExpertBook mute LED support patryk.dankow
@ 2026-09-15 17:41 ` patryk.dankow
2026-09-15 19:43 ` Denis Benato
2026-09-15 17:41 ` [PATCH 2/2] ALSA: hda/realtek: Add mute LED support for ASUS PM3406CKA patryk.dankow
2026-09-18 18:27 ` [PATCH 0/2] Add ASUS ExpertBook mute LED support Ilpo Järvinen
2 siblings, 1 reply; 6+ messages in thread
From: patryk.dankow @ 2026-09-15 17:41 UTC (permalink / raw)
To: platform-driver-x86
Cc: Patryk Dańków, corentin.chary, luke, denis.benato,
hansg, ilpo.jarvinen, linux-kernel
From: Patryk Dańków <patryk.dankow@protonmail.com>
Add support for WMI device 0x0004001c and register it as the
platform::mute LED using the audio-mute trigger.
The device ID is present in the PM3406CKA DSDT and is also used
by GHelper for controlling the same LED.
Tested on ASUS ExpertBook PM3406CKA.
Signed-off-by: Patryk Dańków <patryk.dankow@protonmail.com>
---
drivers/platform/x86/asus-wmi.c | 26 +++++++++++++++++++++-
include/linux/platform_data/x86/asus-wmi.h | 1 +
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index a65090429ca7..d7c100dc2020 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -262,6 +262,7 @@ struct asus_wmi {
struct led_classdev lightbar_led;
int lightbar_led_wk;
struct led_classdev micmute_led;
+ struct led_classdev mute_led;
struct led_classdev camera_led;
struct workqueue_struct *led_workqueue;
struct work_struct tpd_led_work;
@@ -2054,6 +2055,16 @@ static int micmute_led_set(struct led_classdev *led_cdev,
return err < 0 ? err : 0;
}
+static int mute_led_set(struct led_classdev *led_cdev,
+ enum led_brightness brightness)
+{
+ int state = brightness != LED_OFF;
+ int err;
+
+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_MUTE_LED, state, NULL);
+ return err < 0 ? err : 0;
+}
+
static enum led_brightness camera_led_get(struct led_classdev *led_cdev)
{
struct asus_wmi *asus;
@@ -2084,6 +2095,7 @@ static void asus_wmi_led_exit(struct asus_wmi *asus)
led_classdev_unregister(&asus->wlan_led);
led_classdev_unregister(&asus->lightbar_led);
led_classdev_unregister(&asus->micmute_led);
+ led_classdev_unregister(&asus->mute_led);
led_classdev_unregister(&asus->camera_led);
if (asus->led_workqueue)
@@ -2176,7 +2188,19 @@ static int asus_wmi_led_init(struct asus_wmi *asus)
asus->micmute_led.default_trigger = "audio-micmute";
rv = led_classdev_register(&asus->platform_device->dev,
- &asus->micmute_led);
+ &asus->micmute_led);
+ if (rv)
+ goto error;
+ }
+
+ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MUTE_LED)) {
+ asus->mute_led.name = "platform::mute";
+ asus->mute_led.max_brightness = 1;
+ asus->mute_led.brightness_set_blocking = mute_led_set;
+ asus->mute_led.default_trigger = "audio-mute";
+
+ rv = led_classdev_register(&asus->platform_device->dev,
+ &asus->mute_led);
if (rv)
goto error;
}
diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
index b5ed8c83ace1..3810c4a0da23 100644
--- a/include/linux/platform_data/x86/asus-wmi.h
+++ b/include/linux/platform_data/x86/asus-wmi.h
@@ -54,6 +54,7 @@
#define ASUS_WMI_DEVID_LED5 0x00020015
#define ASUS_WMI_DEVID_LED6 0x00020016
#define ASUS_WMI_DEVID_MICMUTE_LED 0x00040017
+#define ASUS_WMI_DEVID_MUTE_LED 0x0004001C
/* Disable Camera LED */
#define ASUS_WMI_DEVID_CAMERA_LED_NEG 0x00060078 /* 0 = on (unused) */
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 2/2] ALSA: hda/realtek: Add mute LED support for ASUS PM3406CKA
2026-09-15 17:41 [PATCH 0/2] Add ASUS ExpertBook mute LED support patryk.dankow
2026-09-15 17:41 ` [PATCH 1/2] platform/x86: asus-wmi: Add " patryk.dankow
@ 2026-09-15 17:41 ` patryk.dankow
2026-09-16 7:40 ` Takashi Iwai
2026-09-18 18:27 ` [PATCH 0/2] Add ASUS ExpertBook mute LED support Ilpo Järvinen
2 siblings, 1 reply; 6+ messages in thread
From: patryk.dankow @ 2026-09-15 17:41 UTC (permalink / raw)
To: linux-sound
Cc: Patryk Dańków, perex, tiwai, zhangheng, dnaim,
damien.dagorn29, kailang, habilerenturker, linux-kernel
From: Patryk Dańków <patryk.dankow@protonmail.com>
Enable vmaster mute LED handling for the PM3406CKA while retaining
the existing CS35L41 I2C fixup by chaining the new fixup to it.
Tested on ASUS ExpertBook PM3406CKA.
Signed-off-by: Patryk Dańków <patryk.dankow@protonmail.com>
---
sound/hda/codecs/realtek/alc269.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 3abee617e86e..d1f0c2752624 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -180,6 +180,15 @@ static void alc_enable_headset_jack_key(struct hda_codec *codec)
}
}
+static void alc_fixup_pm3406cka_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;
+}
+
static void alc_fixup_headset_jack(struct hda_codec *codec,
const struct hda_fixup *fix, int action)
{
@@ -4383,6 +4392,7 @@ enum {
ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN_HEADSET,
ALC285_LENOVO_DAC_RENAME,
ALC287_FIXUP_YOGA9_SPEAKER2_TO_DAC1,
+ ALC_FIXUP_PM3406CKA_VMASTER_LED,
};
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -7129,6 +7139,12 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC287_FIXUP_TXNW2781_I2C,
},
+ [ALC_FIXUP_PM3406CKA_VMASTER_LED] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc_fixup_pm3406cka_vmaster_led,
+ .chained = true,
+ .chain_id = ALC287_FIXUP_CS35L41_I2C_2,
+ },
};
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -7786,7 +7802,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
SND_PCI_QUIRK(0x1043, 0x1433, "ASUS GX650PY/PZ/PV/PU/PYV/PZV/PIV/PVV", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC),
- SND_PCI_QUIRK(0x1043, 0x1454, "ASUS PM3406CKA", ALC287_FIXUP_CS35L41_I2C_2),
+ SND_PCI_QUIRK(0x1043, 0x1454, "ASUS PM3406CKA", ALC_FIXUP_PM3406CKA_VMASTER_LED),
SND_PCI_QUIRK(0x1043, 0x1460, "Asus VivoBook 15", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1043, 0x1463, "Asus GA402X/GA402N", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC),
SND_PCI_QUIRK(0x1043, 0x1473, "ASUS GU604VI/VC/VE/VG/VJ/VQ/VU/VV/VY/VZ", ALC285_FIXUP_ASUS_HEADSET_MIC),
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 0/2] Add ASUS ExpertBook mute LED support
2026-09-15 17:41 [PATCH 0/2] Add ASUS ExpertBook mute LED support patryk.dankow
2026-09-15 17:41 ` [PATCH 1/2] platform/x86: asus-wmi: Add " patryk.dankow
2026-09-15 17:41 ` [PATCH 2/2] ALSA: hda/realtek: Add mute LED support for ASUS PM3406CKA patryk.dankow
@ 2026-09-18 18:27 ` Ilpo Järvinen
2 siblings, 0 replies; 6+ messages in thread
From: Ilpo Järvinen @ 2026-09-18 18:27 UTC (permalink / raw)
To: platform-driver-x86, linux-sound, patryk.dankow
Cc: corentin.chary, luke, denis.benato, hansg, perex, tiwai,
zhangheng, dnaim, damien.dagorn29, kailang, habilerenturker,
linux-kernel
On Tue, 15 Sep 2026 17:41:20 +0000, patryk.dankow@protonmail.com wrote:
> This series adds speaker mute LED support for the ASUS ExpertBook
> PM3406CKA.
>
> The first patch adds the ASUS WMI mute LED endpoint and registers it as
> the platform::mute LED using the audio-mute trigger.
>
> The second patch enables vmaster mute LED handling for the PM3406CKA in
> the Realtek HDA codec driver. The existing CS35L41 I2C fixup is retained
> by chaining the new fixup to it.
>
> [...]
Thank you for your contribution, it has been applied to my local
review-ilpo-next branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-next branch only once I've pushed my
local branch there, which might take a while.
FYI [if applicable to your patch], as per Linus' policy change, also
fixes are mostly routed through for-next unless the fix is for a
commit introduced in the most recent cycle or is clearly a regression
fix.
The list of commits applied:
[1/2] platform/x86: asus-wmi: Add mute LED support
commit: d95982b2ea3453998466efe1e7e06fee7392e800
[2/2] ALSA: hda/realtek: Add mute LED support for ASUS PM3406CKA
(no commit info)
--
i.
^ permalink raw reply [flat|nested] 6+ messages in thread