drivers/hid/hid-debug.c | 2 +- drivers/hid/hid-input.c | 1 + drivers/input/input-leds.c | 1 + include/uapi/linux/input-event-codes.h | 1 + 4 files changed, 4 insertions(+), 1 deletion(-)
HUTRR110 defines LED page usage 0x57 as System Microphone Mute.
The usage is currently ignored, so the indicator stays dark and
userspace falls back to per-vendor code in hid-lenovo,
hid-playstation, hid-plantronics.
Map it to a new LED_MICMUTE. It appears as
/sys/class/leds/inputN::micmute and uses the "audio-micmute"
trigger from snd-ctl-led, so the LED follows the system-wide
mic mute state the same way LED_MUTE (page 0x09) already does
for speaker mute.
LED_MICMUTE takes the next free code (0x0b).
Link: https://www.usb.org/sites/default/files/hutrr110-systemmicrophonemute.pdf
Signed-off-by: Jonathan Jansen <jonathanjansen@ait.place>
---
Notes:
Changes since v1: rewrote the commit message; no functional changes.
drivers/hid/hid-debug.c | 2 +-
drivers/hid/hid-input.c | 1 +
drivers/input/input-leds.c | 1 +
include/uapi/linux/input-event-codes.h | 1 +
4 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index f44e6e708..92a950105 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -3550,7 +3550,7 @@ static const char *leds[LED_MAX + 1] = {
[LED_KANA] = "Kana", [LED_SLEEP] = "Sleep",
[LED_SUSPEND] = "Suspend", [LED_MUTE] = "Mute",
[LED_MISC] = "Misc", [LED_MAIL] = "Mail",
- [LED_CHARGING] = "Charging",
+ [LED_CHARGING] = "Charging", [LED_MICMUTE] = "Mic Mute",
};
static const char *repeats[REP_MAX + 1] = {
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index edd6bbf83..727374dd5 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -990,6 +990,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
case 0x27: map_led (LED_SLEEP); break; /* "Stand-By" */
case 0x4c: map_led (LED_SUSPEND); break; /* "System Suspend" */
case 0x09: map_led (LED_MUTE); break; /* "Mute" */
+ case 0x57: map_led (LED_MICMUTE); break; /* "System Microphone Mute" */
case 0x4b: map_led (LED_MISC); break; /* "Generic Indicator" */
case 0x19: map_led (LED_MAIL); break; /* "Message Waiting" */
case 0x4d: map_led (LED_CHARGING); break; /* "External Power Connected" */
diff --git a/drivers/input/input-leds.c b/drivers/input/input-leds.c
index b08d1d08d..6522079a4 100644
--- a/drivers/input/input-leds.c
+++ b/drivers/input/input-leds.c
@@ -36,6 +36,7 @@ static const struct {
[LED_SLEEP] = { "sleep" } ,
[LED_SUSPEND] = { "suspend" },
[LED_MUTE] = { "mute", AUDIO_TRIGGER("audio-mute") },
+ [LED_MICMUTE] = { "micmute", AUDIO_TRIGGER("audio-micmute") },
[LED_MISC] = { "misc" },
[LED_MAIL] = { "mail" },
[LED_CHARGING] = { "charging" },
diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
index 3528168f7..bc374821c 100644
--- a/include/uapi/linux/input-event-codes.h
+++ b/include/uapi/linux/input-event-codes.h
@@ -983,6 +983,7 @@
#define LED_MISC 0x08
#define LED_MAIL 0x09
#define LED_CHARGING 0x0a
+#define LED_MICMUTE 0x0b
#define LED_MAX 0x0f
#define LED_CNT (LED_MAX+1)
--
2.55.0
On Fri, 4 Sep 2026, Jonathan Jansen wrote: > HUTRR110 defines LED page usage 0x57 as System Microphone Mute. > > The usage is currently ignored, so the indicator stays dark and > userspace falls back to per-vendor code in hid-lenovo, > hid-playstation, hid-plantronics. > > Map it to a new LED_MICMUTE. It appears as > /sys/class/leds/inputN::micmute and uses the "audio-micmute" > trigger from snd-ctl-led, so the LED follows the system-wide > mic mute state the same way LED_MUTE (page 0x09) already does > for speaker mute. > > LED_MICMUTE takes the next free code (0x0b). > > Link: https://www.usb.org/sites/default/files/hutrr110-systemmicrophonemute.pdf > > Signed-off-by: Jonathan Jansen <jonathanjansen@ait.place> > --- > > Notes: > Changes since v1: rewrote the commit message; no functional changes. > > drivers/hid/hid-debug.c | 2 +- > drivers/hid/hid-input.c | 1 + Acked-by: Jiri Kosina <jkosina@suse.com> for the drivers/hid changes. Dmitry, will you take this through your tree, please? Thanks, -- Jiri Kosina SUSE Labs
On Fri, Sep 11, 2026 at 05:58:24PM +0200, Jiri Kosina wrote: > On Fri, 4 Sep 2026, Jonathan Jansen wrote: > > > HUTRR110 defines LED page usage 0x57 as System Microphone Mute. > > > > The usage is currently ignored, so the indicator stays dark and > > userspace falls back to per-vendor code in hid-lenovo, > > hid-playstation, hid-plantronics. > > > > Map it to a new LED_MICMUTE. It appears as > > /sys/class/leds/inputN::micmute and uses the "audio-micmute" > > trigger from snd-ctl-led, so the LED follows the system-wide > > mic mute state the same way LED_MUTE (page 0x09) already does > > for speaker mute. > > > > LED_MICMUTE takes the next free code (0x0b). > > > > Link: https://www.usb.org/sites/default/files/hutrr110-systemmicrophonemute.pdf > > > > Signed-off-by: Jonathan Jansen <jonathanjansen@ait.place> > > --- > > > > Notes: > > Changes since v1: rewrote the commit message; no functional changes. > > > > drivers/hid/hid-debug.c | 2 +- > > drivers/hid/hid-input.c | 1 + > > Acked-by: Jiri Kosina <jkosina@suse.com> > > for the drivers/hid changes. > > Dmitry, will you take this through your tree, please? Hi Jiri, Jonathan, Sorry but we should not add any new LED definitions to input since we have proper LED subsystem now. The existing LED definitions are strictly legacy now and input core has a bridge to LEDs (in input-leds.c). I see we had similar submissions in '23 and '24 at the very least. I should add a comment to that effect to input-event-codes.h. Thanks. -- Dmitry
© 2016 - 2026 Red Hat, Inc.