Hi,
Together with dwc2 maintainer Minas Harutyunyan we have been
troubleshooting various issues of dwc2 on RPi4. We hit a problem where
the g_audio in capture (EP OUT, playback from USB host) requests req->
length larger than maxpacket*mc.
As a workaround we removed the check in dwc2/gadget.c, however that is
not a proper solution. Minas with his team decided to add a patch where
dwc2 will rejecting this type of wrong requests in dwc2_hsotg_ep_queue()
function, to not process these request at all. The f_uac2 + g_audio
gadget should restrain from sending such requests.
Steps to reproduce:
* Changing fs_epout_desc.bInterval in f_uac2.c from 4 (1ms) to 1 (125us)
- the goal is to maximize available throughput of the audio gadget
* Loading the g_audio module with c_srate=48000, c_ssize=2, c_chmask=2 -
i.e. standard 48kHz/16bit/2ch USB playback -> alsa capture
This combination produces mps=24 and mc=1 for EP OUT. Yet the audio
function driver sometimes queues request with req->length 192.
Please may I ask for fixing the audio function in this respect?
Unfortunately that is way above my knowledge of that code/requirements.
However, I can send debug dump for u_audio.c, f_uac2.c, gadget.c if needed.
Thanks a lot in advance.
Best regards,
Pavel.