On Tue, Mar 11, 2025 at 06:20:27PM -0400, Geoff Steckel wrote: > > I didn't see any obvious code in uaudio.c that checked that class #. > I found a place where some device capabilities are decoded but > didn't see where a volume/mixer control would show up.
The class version is detected in uaudio_process_header() and stored in sc->version. Most of the code is common to both classes as they are very similar. If there are differences, the sc->version variable is used to select the corresponding code block. If the device appears to work but produces no sound, the problem could be in the code that configures the controls (mute, volume set to zero, wrong output selection, etc). Controls are setup by uaudio_process_ac(). Unfortunately, the UAC spec is complicated, so uaudio_process_ac() is not trivial.