Jassi Brar wrote:
While testing my under-development generic USB Audio Class 2.0 _gadget_ driver with ALSA's USB Audio Class driver, I came across an apparent discrepency. Or so do I think.
Page-98 Section 5.2.5.1.1 of 'Audio 20 final.pdf' specifies :- [In many cases, the Clock Source Entity represents a crystal oscillator based generator with a single fixed frequency. In that case, the Set request is not supported.]
Here 'not supported' means setup requests for CUR/RANGE CS_SAM_FREQ_CONTROL should stall. Right ?
Strictly speaking, "is not" (instead of "might not be") implies that the device _must_ stall.
The snd_usb_hw_params in sound/usb/pcm.c apparently attempts to do that with disregard to Clock-Frequency-Control bitmask in bmControls field of the Clock Source Descriptor.
The confusion is, subs->cur_rate is initialized only if snd_usb_init_sample_rate succeeds. Which does SET control tranfer, albeit with the supported frequency. Couldn't a fixed sampling freq UAC2 compliant device refuse to work in that case, thereby failing any attempt to use the USB card?
Yes, it will fail. This is a bug in the driver.
Regards, Clemens