Consider upstreaming as snd-usb-audio quirk instead of custom kernel module #3

Open
opened 2026-02-24 19:07:43 +00:00 by thebrianbug · 2 comments
thebrianbug commented 2026-02-24 19:07:43 +00:00 (Migrated from github.com)

Note

This issue was written with the help of an LLM (Claude).

Idea

Have you looked into whether the Wave:3's Feature Unit controls (Entity 5 headphone mute/volume, Entity 6 mic mute/gain) could be exposed through standard ALSA mixer mappings via a snd-usb-audio quirk entry?

If the USB Audio Class descriptors already advertise these controls properly, it might be possible to add a quirk to snd-usb-audio so that amixer / alsamixer / PipeWire can control them natively — no custom kernel module needed.

Why it might be worth exploring

  • Standard ALSA mixer controls would integrate with PipeWire, PulseAudio, and desktop volume controls out of the box
  • No need to maintain an out-of-tree kernel module across kernel versions
  • Other tools and desktop environments would pick up the controls automatically

Context

The kernel module approach works great right now, and this is not a criticism of it — just wondering if you'd explored this path and whether the Wave:3's descriptors make it feasible. You'd know best from the Wireshark captures whether snd-usb-audio is ignoring/mishandling the control descriptors or if there's something non-standard about how the Wave:3 exposes them.

Totally understand if this isn't practical — just wanted to surface the idea.

> [!NOTE] > This issue was written with the help of an LLM (Claude). ## Idea Have you looked into whether the Wave:3's Feature Unit controls (Entity 5 headphone mute/volume, Entity 6 mic mute/gain) could be exposed through standard ALSA mixer mappings via a `snd-usb-audio` quirk entry? If the USB Audio Class descriptors already advertise these controls properly, it might be possible to add a quirk to `snd-usb-audio` so that `amixer` / `alsamixer` / PipeWire can control them natively — no custom kernel module needed. ## Why it might be worth exploring - Standard ALSA mixer controls would integrate with PipeWire, PulseAudio, and desktop volume controls out of the box - No need to maintain an out-of-tree kernel module across kernel versions - Other tools and desktop environments would pick up the controls automatically ## Context The kernel module approach works great right now, and this is not a criticism of it — just wondering if you'd explored this path and whether the Wave:3's descriptors make it feasible. You'd know best from the Wireshark captures whether `snd-usb-audio` is ignoring/mishandling the control descriptors or if there's something non-standard about how the Wave:3 exposes them. Totally understand if this isn't practical — just wanted to surface the idea.
x4ndr0m3d4x commented 2026-02-25 09:00:34 +00:00 (Migrated from github.com)

@thebrianbug I did look into this. snd-usb-audio does expose the controls, but they didn't work reliably for me. Muting didn't do anything on the hardware level, and I wasn't getting accurate info on the current volume levels either.

If you have a specific approach in mind and don't have Wave:3, I'm happy to test it myself.

@thebrianbug I did look into this. `snd-usb-audio` does expose the controls, but they didn't work reliably for me. Muting didn't do anything on the hardware level, and I wasn't getting accurate info on the current volume levels either. If you have a specific approach in mind and don't have Wave:3, I'm happy to test it myself.
thebrianbug commented 2026-02-27 03:15:24 +00:00 (Migrated from github.com)

I'm a n00b at kernel. I have no idea, I'm just posting an LLM's feedback.

But the point does make sense. If there is a potential approach that could remove the kernel dependency in something that could be up-streamed, that's a win.

Great thing to ask a good LLM about

I'm a n00b at kernel. I have no idea, I'm just posting an LLM's feedback. But the point does make sense. If there is a potential approach that could remove the kernel dependency in something that could be up-streamed, that's a win. Great thing to ask a good LLM about
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
4ndr0m3d4/wave3ctl#3
No description provided.