The device in question is the USB dongle for my 2.4 GHz wireless headset. Everything works fine except for volume control, so it is stuck at max volume, regardless of where the volume slider in pavucontrol is. Volume controls within individual websites and programs work, but it seems that the system volume control is delegated to the USB device, which itself has no concept of volume control. This is the case with both pulseaudio and pipewire. Is there a way to limit the system-wide volume before it reaches the dongle?
Looking up the hardware id, it seems that someone else had the same issue: https://github.com/alsa-project/alsa-lib/issues/401
If I’m understanding correctly, there’s no proper driver for it in the kernel yet. My workaround for now is to use the limiter in pulseeffects.
Edit: If anyone wants to know, it does work flawlessly on Android, but I have no idea if the way Android handles USB audio is relevant to desktop Linux at all.
Good find, but it’s not a kernel issue in this case. The device is recognized as “something”, and outputs audio correctly, you just need to find out where it’s getting it’s audio from, and assign a control channel through Pipewire to control the sink volume. Should be pretty easy, but will require some digging and a quick bit of learning.