From: Chris Wulff crwulff@gmail.com
The newer version of the HyperX Amp USB audio sound card appears to use two separate interfaces for controls and audio. This doesn't work well with the current linux kernel (tested with 5.4).
Interface 0 has just a mute control, while interface 2 has mute and volume controls for both playback and capture. This appears to cause a couple different issues.
The first is that the wrong interface is used to query most of the controls, resulting in lots of messages like this:
usb 1-3: 12:0: cannot get min/max values for control 2 (id 12)
The second problem is that since it is enumerated as two separate interfaces, the device gets registered and then the capture stream gets merged into the already-registered pcm device (which results in the udev events not being generated for the capture stream and no /dev/snd/pcmC#D#c file.)
This patch fixes both those problems, and allows the device to be used with ALSA programs, but pulseaudio does not enumerate the capture device correctly since it is pcmC#D1c and there is no pcmC#D0c. Adding a symlink from pcmC#D0c -> pcmC#D1c fixes pulseaudio but I'm not sure exactly why pulseaudio can't find the device without it.