Hi Minas, 1. Depend on which uac(uac1 or uac2) you use, increase 2 to 32 I change the #define UAC1_DEF_REQ_NUM 32. When I do this, what I see is, that when I play audio on the target, I don’t see the ENDPOINT shutdown. HOWEVER, when I try to record the data, I DO NOT RECORD any data. The arecord file is empty with only 44 bytes. I saw the same behavior 2 months ago with the older version of kernel. The logs show that the data comes on EP1(OUT) and the buffer queues upto #255 and then wraps around to 0. USB sniffer also shows data coming in. [ 4022.593932] dwc2 ffb40000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000001 [ 4022.593945] dwc2 ffb40000.usb: dwc2_hsotg_epint: XferCompl: DxEPCTL=0x800480c8, DXEPTSIZ=1411f0c0 [ 4022.593962] dwc2 ffb40000.usb: complete: ep 5a34f664 ep1out, req 071607a0, 0 => 209d0061 [ 4022.593981] dwc2 ffb40000.usb: ep1out: req 071607a0: 200@f268b719, noi=0, zero=0, snok=0 [ 4022.594005] dwc2 ffb40000.usb: dwc2_gadget_fill_isoc_desc: Filling ep 1, dir out isoc desc # 255 [ 4022.594017] dwc2 ffb40000.usb: dwc2_gadget_complete_isoc_request_ddma: compl_desc # 223 [ 4022.594922] dwc2 ffb40000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000001 [ 4022.594935] dwc2 ffb40000.usb: dwc2_hsotg_epint: XferCompl: DxEPCTL=0x800480c8, DXEPTSIZ=1409f060 [ 4022.594951] dwc2 ffb40000.usb: complete: ep 5a34f664 ep1out, req bba03a8f, 0 => 209d0061 [ 4022.594971] dwc2 ffb40000.usb: ep1out: req bba03a8f: 200@a96a5d42, noi=0, zero=0, snok=0 [ 4022.594994] dwc2 ffb40000.usb: dwc2_gadget_fill_isoc_desc: Filling ep 1, dir out isoc desc # 0 [ 4022.595006] dwc2 ffb40000.usb: dwc2_gadget_complete_isoc_request_ddma: compl_desc # 224 I see this going on indefinitely in logs. But when I do arecord and try to capture, I don’t get anything recorded. Is there anything more that needs to be enabled, to get this working? The endpoint is not shutting down but the data isn’t getting recorded. May be this is the going in the right direction but needs something more to be done? Attached the logs file here, showing no endpoint shutdown, but arecord file showing NO data. 2. Change descriptor DMA (DDMA) mode to buffer DMA (BDMA) mode When I change this, I am seeing a kernel crash. I will investigate this further. Thanks, Palak -----Original Message----- From: Minas Harutyunyan Sent: Tuesday, May 16, 2023 3:54 AM To: PALAK SHAH ; Maynard CABIENTE Cc: linux-usb@vger.kernel.org Subject: Re: usb: gadget: dwc2: not getting audio data Hi Palak, On 5/11/23 17:16, PALAK SHAH wrote: > Hi Minas, > > Can you please respond to this? We need USB Audio Gadget working and > we cannot proceed without Synopsis support on this. > > Thanks, > > Palak > > *From:* PALAK SHAH > *Sent:* Tuesday, May 9, 2023 10:52 AM > *To:* Minas Harutyunyan ; Maynard > CABIENTE > *Cc:* linux-usb@vger.kernel.org > *Subject:* RE: usb: gadget: dwc2: not getting audio data > > Hi Minas, > > I have updated the kernel to 5.10.100. I have done the IP core test > and all the tests (esp. t15 and t16 for ISOC) pass on our system. > > However, I am still seeing the original problem. USB gadget DWC2 > driver is getting stuck and not getting the transfers completed. > > When I am running audio on the host, and trying to capture the data on > EP1(out) end point - > > [ 270.855174] dwc2 ffb40000.usb: dwc2_hsotg_irq: gintsts: 042c8028, > gintsts & gintmsk: 000c0000, gintmsk: (d08c3c44) retry 8 [ > 270.855189] dwc2 ffb40000.usb: dwc2_hsotg_irq: daint=00020002 [ > 270.855205] dwc2 ffb40000.usb: dwc2_hsotg_epint: ep1(out) > DxEPINT=0x00000001 > [ 270.855218] dwc2 ffb40000.usb: dwc2_hsotg_epint: XferCompl: > DxEPCTL=0x800480c8, DXEPTSIZ=11e55680 > [ 270.855238] dwc2 ffb40000.usb: complete: ep 822473bd ep1out, req > 76bf77e8, 0 => 778da9a8 [ 270.855260] dwc2 ffb40000.usb: ep1out: req > 76bf77e8: 200@1c821d4e, noi=0, zero=0, snok=0 [ 270.855279] dwc2 > ffb40000.usb: dwc2_gadget_fill_isoc_desc: Filling ep 1, dir out isoc > desc # 195 [ 270.855292] dwc2 ffb40000.usb: > dwc2_gadget_complete_isoc_request_ddma: compl_desc # 193 > > [ 270.856242] dwc2 ffb40000.usb: dwc2_hsotg_irq: gintsts: 04288028, > gintsts & gintmsk: 00080000, gintmsk: (d08c3c44) retry 8 [ > 270.856255] dwc2 ffb40000.usb: dwc2_hsotg_irq: daint=00020000 [ > 270.856268] dwc2 ffb40000.usb: dwc2_hsotg_epint: ep1(out) > DxEPINT=0x00000001 > [ 270.856282] dwc2 ffb40000.usb: dwc2_hsotg_epint: XferCompl: > DxEPCTL=0x800480c8, DXEPTSIZ=11dd5620 > [ 270.856311] dwc2 ffb40000.usb: complete: ep 822473bd ep1out, req > 5af4a660, 0 => 778da9a8 [ 270.856346] dwc2 ffb40000.usb: ep1out: req > 5af4a660: 200@f8820950, noi=0, zero=0, snok=0 [ 270.856371] dwc2 > ffb40000.usb: dwc2_gadget_fill_isoc_desc: Filling ep 1, dir out isoc > desc # 196 [ 270.856398] dwc2 ffb40000.usb: > dwc2_gadget_complete_isoc_request_ddma: compl_desc # 194 > > [ 281.700537] dwc2 ffb40000.usb: dwc2_hsotg_irq: daint=00020002 [ > 281.700552] dwc2 ffb40000.usb: dwc2_hsotg_epint: ep1(out) > DxEPINT=0x00000010 > [ 281.700564] dwc2 ffb40000.usb: > dwc2_gadget_handle_out_token_ep_disabled: target_frame = 0x000013d0 [ > 281.700580] dwc2 ffb40000.usb: dwc2_gadget_fill_isoc_desc: Filling ep > 1, dir out isoc desc # 0 [ 281.700594] dwc2 ffb40000.usb: > dwc2_gadget_fill_isoc_desc: Filling ep 1, dir out isoc desc # 1 > > At 270 seconds, the request #194 was completed and request #196 was > queued. But right after that, there was a 11 second gap and the > request > #195 was never completed. > > For some unknown reason, the DWC2 core just stops. There is nothing in > our system that causes it to get stuck. The interrupts are not disabled. > The USB sniffer data shows that the data is coming in. However, dwc2 > is not running. > After the time gap, everything stop working. > > I have attached the log file here. Can you please help me fix this > dwc2 core issue? > > Thanks, > Palak > > As I recommended earlier, please try: 1. Depend on which uac(uac1 or uac2) you use, increase 2 to 32 2. Change descriptor DMA (DDMA) mode to buffer DMA (BDMA) mode Thanks, Minas ________________________________ Ce message, ainsi que tous les fichiers joints à ce message, peuvent contenir des informations sensibles et/ ou confidentielles ne devant pas être divulguées. Si vous n'êtes pas le destinataire de ce message (ou que vous recevez ce message par erreur), nous vous remercions de le notifier immédiatement à son expéditeur, et de détruire ce message. Toute copie, divulgation, modification, utilisation ou diffusion, non autorisée, directe ou indirecte, de tout ou partie de ce message, est strictement interdite. This e-mail, and any document attached hereby, may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized, direct or indirect, copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden.