Re: [PATCH] HID: hyperx: add driver for the HyperX QuadCast 2 mute button
Jiri Kosina <[email protected]> Mon, 3 Aug 2026 21:39:19 +0200 (CEST)
| Newsgroups | org.kernel.vger.linux-input,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 13 Jul 2026, Benjamin Blume wrote: > The tap-to-mute button of the HyperX QuadCast 2 (03f0:07b4) is handled > entirely in the device firmware. The firmware gates the audio internally > but never sends the Telephony "Phone Mute" usage (0x2f) that its own report > descriptor advertises, and it does not touch the UAC feature unit either. > Consequently neither an evdev key event nor an ALSA mixer change is ever > generated, and userspace has no way to learn that the microphone was muted: > desktops keep showing the microphone as live, and conferencing applications > keep displaying an unmuted microphone while transmitting silence. > > The mute state is reported through a vendor-defined collection instead: > > 06 c0 ff Usage Page (Vendor-Defined 0xFFC0) > a1 01 Collection (Application) > 06 c1 ff Usage Page (Vendor-Defined 0xFFC1) > 85 77 Report ID (0x77) > 09 f0 Usage (0xF0) > 75 08 95 3f Report Size (8), Report Count (63) > 81 02 Input (Data,Var,Abs) > > Pressing the button emits a 64-byte report on that collection: > > 77 06 00 00 ... microphone unmuted > 77 06 01 00 ... microphone muted > > where byte 1 identifies the mute event and byte 2 carries the resulting > state. As the payload is an opaque vendor blob carrying no HID usages, > hid-input cannot map it and a hwdb entry cannot express it either. > > Add a driver that decodes the report and emits KEY_MICMUTE, which makes the > button behave like any other microphone mute key. > > Note that the device reports the resulting absolute state, whereas > KEY_MICMUTE is a momentary key that userspace acts on as a toggle, so the > driver emits one keypress per state change. > > Tested on a HyperX QuadCast 2 (03f0:07b4). > > Signed-off-by: Benjamin Blume <[email protected]> Applied, thanks. -- Jiri Kosina SUSE Labs