On Fri, Aug 07, 2020 at 12:22:17PM +0100, Patrick Harper wrote: > This is the relevant section of the dmesg that was posted: > > uaudio0 at uhub3 port 2 configuration 1 interface 1 "Cyrus Audio Cyrus > soundKey" rev 2.00/1.00 addr 4 > uaudio0: class v1, full-speed, async, channels: 2 play, 0 rec, 2 ctls > audio1 at uaudio0 > uhidev0 at uhub3 port 2 configuration 1 interface 2 "Cyrus Audio Cyrus > soundKey" rev 2.00/1.00 addr 4 > uhidev0: iclass 3/0 > uhid0 at uhidev0: input=64, output=64, feature=0 > > Judging by the second line, it's a class 1 async device? By comparison, this > is the UAC1 DAC (Behringer UCA200) I use on an xhci bus with no problems, > except no recording support: > > xhci3 at pci7 dev 0 function 0 "Renesas uPD720202 xHCI" rev 0x02: msi, xHCI > 1.0 > usb3 at xhci3: USB revision 3.0 > uhub3 at usb3 configuration 1 interface 0 "Renesas xHCI root hub" rev > 3.00/1.00 addr 1 > .. > uaudio1 at uhub3 port 3 configuration 1 interface 1 "Burr-Brown from TI USB > Audio CODEC" rev 1.10/1.00 addr 2 > uaudio1: class v1, full-speed, sync, channels: 2 play, 2 rec, 3 ctls > audio1 at uaudio1 > uhidev1 at uhub3 port 3 configuration 1 interface 3 "Burr-Brown from TI USB > Audio CODEC" rev 1.10/1.00 addr 2 > uhidev1: iclass 3/0 > uhid1 at uhidev1: input=1, output=0, feature=0 >
This is about whether the DAC/ADC has it's own clock (async) or is clocked by the bus clock (sync). In the "sync" case, the DAC/ADC operates at host's (thus constant) data rate. In the "async" case, the DAC/ADC has it's own clock source and the host must constantly adjust its data rate to match device data rate. The data rate is controlled using standard isoc transfers and doesn't need extra HC capability.