usb:gadget:f_uac2: EP OUT is adaptive instead of async

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Best regards,

Pavel.



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux