For the capture endpoint, set the UAC_EP_CS_ATTR_FILL_MAX bit in bmAttributes to that the host only send IN tokens with wMaxPacketSize bytes. If that bit isn't set, snd-usb will calculate a smaller packet size, which is answered by a fixed-size (512 bytes) response from the gadget driver. That consequently leads to -EOVERFLOW errors on the host side. Reported-by: Sebastian Reimers <sebastian.reimers@xxxxxxxxxxxxxx> Signed-off-by: Daniel Mack <zonque@xxxxxxxxx> --- drivers/usb/gadget/function/f_uac2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c index efe8add..1d6d085 100644 --- a/drivers/usb/gadget/function/f_uac2.c +++ b/drivers/usb/gadget/function/f_uac2.c @@ -813,7 +813,7 @@ static struct uac2_iso_endpoint_descriptor as_iso_in_desc = { .bDescriptorType = USB_DT_CS_ENDPOINT, .bDescriptorSubtype = UAC_EP_GENERAL, - .bmAttributes = 0, + .bmAttributes = UAC_EP_CS_ATTR_FILL_MAX, .bmControls = 0, .bLockDelayUnits = 0, .wLockDelay = 0, -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html