On Thu, Feb 06, 2020 at 02:22:47PM +0100, Pavel Hofman wrote: > Hi, > > The existing UAC2 implementation presents itself as asynchronous > USB_ENDPOINT_SYNC_ASYNC https://github.com/torvalds/linux/blob/master/drivers/usb/gadget/function/f_uac2.c#L276 > + https://github.com/torvalds/linux/blob/master/drivers/usb/gadget/function/f_uac2.c#L285 > . > > However: > 1) The function does not define any feedback endpoint > > 2) IMO in reality it is adaptive - the g_audio capture device accepts any > data passed by the USB host, the USB host is the one which defines the data > pace. > > While Linux and reportedly OSX accept the async EP OUT without explicit > feedback EP IN, Windows does not. > > Simply changing USB_ENDPOINT_SYNC_ASYNC to USB_ENDPOINT_SYNC_ADAPTIVE for > the FS and HS output endpoints fixes the windows problem and IMO corrects > the config to reflect real function. > > There are multiple projects underway adding the async feedback EP, but in > the meantime I think the .bmAttributes information should be changed as > above, making the device usable in Windows for everyone. > > Thanks a lot for considering. Patches work best, can you create them and test and then submit? thanks, greg k-h