RE: usb: gadget: dwc2: not getting audio data

Minas Harutyunyan
2023-03-09T10:03:29Z

Hi Palak,

>On 3/9/2023 1:42 AM, Palak SHAH wrote:
>From: Palak SHAH <palak.shah@raritan.com>
>Sent: Thursday, March 9, 2023 1:42 AM
>To: Minas Harutyunyan <hminas@synopsys.com>; Maynard CABIENTE
><maynard.cabiente@raritan.com>
>Cc: linux-usb@vger.kernel.org
>Subject: RE: usb: gadget: dwc2: not getting audio data
>
>Hi Minas,
>A while ago, I asked you if I can run a usb test, to test IP core, without
>doing audio test.
>
>You had suggested that to test usbtest program (see
>https://urldefense.com/v3/__https://eur01.safelinks.protection.outlook.com/?
>url=http*3A*2F*2Fwww.linux-
>usb.org*2Fusbtest*2F&data=05*7C01*7Cpalak.shah*40raritan.com*7Ccdc9cf18d5c54
>b2c74fc08daf53d681e*7C199686b5bef4496087867a6b1888fee3*7C1*7C0*7C63809194134
>5558693*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6
>Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata=OIiLXl6dlCHlfACx6ZxpLhQkp07xIwb
>qAR3CtnqfsFU*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUl!!A4F2R9G_pg!f3GN6S
>P6NM--pKekkA-jG4RICPguFvb3DNeRO6jFDEhovrY3IEC2-
>aL0ay4g95j7BsdRM6JRGwjL6kPzTS8z13tShKOe$ )
>
>So I tried this program. I compiled it on my linux host, and run it on the
>host, which is connected to the Linux device acting as USB gadget.
>
>I am running test t15 and t16 which is for ISOC. Infact I tried running all.
>I ran it on the host device. And I get this error -
>
>[palakshah@fedora ~]$ sudo ./testusb -D /dev/bus/usb/001/019 -t15
>./testusb: /dev/bus/usb/001/019 may see only control tests
>/dev/bus/usb/001/019 test 15 --> 25 (Inappropriate ioctl for device)
>
>Either I get error 25 (Inappropriate ioctl for device) or error 38 (Function
>Not Implemented).
>
>If I do, [palakshah@fedora ~]$ sudo ./testusb -a no test devices recognized
>
>I tried to google, why these tests don’t work, but did not find anything
>useful. Do you have any idea?
>

Did you modprobe g_zero module on device side?
lsusb command should show that connected device:
...
Bus 001 Device 002: ID 0525:a4a0 Netchip Technology, Inc. Linux-USB "Gadget Zero"
...

Thanks,
Minas

>Thanks,
>Palak
>
>-----Original Message-----
>From: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
>Sent: Monday, March 6, 2023 11:31 PM
>To: Palak SHAH <palak.shah@raritan.com>; Maynard CABIENTE
><maynard.cabiente@raritan.com>
>Cc: linux-usb@vger.kernel.org
>Subject: RE: usb: gadget: dwc2: not getting audio data
>
>Hi Palak,
>
>>On 3/6/2023 8:26 AM, Palak SHAH wrote:
>>From: Palak SHAH <palak.shah@raritan.com>
>>Sent: Monday, March 6, 2023 8:26 PM
>>To: Minas Harutyunyan <hminas@synopsys.com>; Maynard CABIENTE
>><maynard.cabiente@raritan.com>
>>Cc: linux-usb@vger.kernel.org
>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>
>>Hi Minas,
>>
>>>I can recommend you:
>>>1. disable debug prints to minimize platform loading
>>
>>[Palak] I am working on this
>>
>>>2. change Descriptor DMA mode to Buffer DMA
>>
>>[Palak] Can you please explain this more, what does this mean?
>
>Core can work in 3 different modes to transferring data between FIFO and
>RAM: Slave, Buffer DMA and Descriptor DMA.
>
>To switch from DDMA to BDMA in file params.c file in function
>dwc2_set_default_params()
> ...
> if ((hsotg->dr_mode == USB_DR_MODE_PERIPHERAL) ||
> (hsotg->dr_mode == USB_DR_MODE_OTG)) {
> p->g_dma = dma_capable;
> p->g_dma_desc = hw->dma_desc_enable;
> ...
>Update last line to
> p->g_dma_desc = 0;
>
>Thanks,
>Minas
>
>>
>>Thanks,
>>Palak
>>
>>-----Original Message-----
>>From: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
>>Sent: Thursday, March 2, 2023 11:35 PM
>>To: Palak SHAH <palak.shah@raritan.com>; Maynard CABIENTE
>><maynard.cabiente@raritan.com>
>>Cc: linux-usb@vger.kernel.org
>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>
>>Hi Palak,
>>
>>>On 2/28/2023 12:21 AM, Palak SHAH wrote:
>>>From: Palak SHAH <palak.shah@raritan.com>
>>>Sent: Tuesday, February 28, 2023 12:21 AM
>>>To: Minas Harutyunyan <hminas@synopsys.com>; Maynard CABIENTE
>>><maynard.cabiente@raritan.com>
>>>Cc: linux-usb@vger.kernel.org
>>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>>
>>>Hi Minas,
>>>I have attached the following USB traces and debug log.
>>>1) dmesg and usb sniffer logs during driver loading.
>>>
>>>2) EP1(OUT) - I play AUDIO on the HOST. And I do arecord on the linux
>>>device that acts as USB gadget. So the audio is going OUT from the
>>>host. So you will see EP1 OUT.
>>>I have attached logs and USB sniffer data, during arecord.
>>>
>>>I am not testing ISOC EP1(IN) yet. I am still seeing and debugging
>>>issues with Ep1(out).
>>>
>>>3) When I change UAC1_DEF_REQ_NUM 2 changed to 32, the problem STILL
>>>exist with EP1(OUT). ONLY log behaivor is different. In the log I see
>>>XferCompl, but I don’t get any data in the arecord.
>>>I have attached 2 files. Arecord_command.txt shows what I run.
>>>Arecord_output shows what I get after I run the command.
>>>
>>>4) I sent you regdump, hw_params, params and fifo in the previous email.
>>>
>>
>>I'm not find any issue based on the '_arecord.txt', just again 7 second
>>time
>>gap:
>>
>>[ 228.173271] dwc2 ffb40000.usb: dwc2_hsotg_epint: At the end of the
>>function, dwc2_hsotg_epint() [ 228.173271] [ 235.536299] dwc2
>>ffb40000.usb: dwc2_hsotg_ep_queue, ep1out: req 777cd34b: req
>>len(200)@req buf(af65750d), # of int=0, req zero=0, snok(short not
>>ok)=0
>>
>>I can recommend you:
>>1. disable debug prints to minimize platform loading 2. change
>>Descriptor DMA mode to Buffer DMA
>>
>>Thanks,
>>Minas
>>
>>
>>>Thanks,
>>>Palak
>>>
>>>-----Original Message-----
>>>From: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
>>>Sent: Monday, February 27, 2023 5:18 AM
>>>To: Palak SHAH <palak.shah@raritan.com>; Maynard CABIENTE
>>><maynard.cabiente@raritan.com>
>>>Cc: linux-usb@vger.kernel.org
>>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>>
>>>Hi Palak,
>>>
>>>>On 2/27/2023 6:02 AM, Palak SHAH wrote:
>>>>From: Palak SHAH <palak.shah@raritan.com>
>>>>Sent: Monday, February 27, 2023 6:02 AM
>>>>To: Minas Harutyunyan <hminas@synopsys.com>; Maynard CABIENTE
>>>><maynard.cabiente@raritan.com>
>>>>Cc: linux-usb@vger.kernel.org
>>>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>>>
>>>>Hi Minas,
>>>>Please find attached the logs - regdump, hw_params, params and fifo,
>>>>taken when the driver is loaded.
>>>>
>>>>I will send the USB traces tomorrow.
>>>
>>>
>>>USB trace for arecord (EP1IN ISOC) and debug log.
>>>
>>>
>>>Could you please confirm that after defining UAC1_DEF_REQ_NUM to 32
>>>playing audio (EP1OUT ISOC) no any issue seen?
>>>
>>>Thanks,
>>>Minas
>>>
>>>>
>>>>Thanks,
>>>>Palak
>>>>
>>>>-----Original Message-----
>>>>From: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
>>>>Sent: Friday, February 24, 2023 5:33 AM
>>>>To: Palak SHAH <palak.shah@raritan.com>; Maynard CABIENTE
>>>><maynard.cabiente@raritan.com>
>>>>Cc: linux-usb@vger.kernel.org
>>>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>>>
>>>>Hi Polak,
>>>>
>>>>>On 2/24/2023 3:04 AM, Palak SHAH wrote:
>>>>>From: Palak SHAH <palak.shah@raritan.com>
>>>>>Sent: Friday, February 24, 2023 3:04 AM
>>>>>To: Minas Harutyunyan <hminas@synopsys.com>; Maynard CABIENTE
>>>>><maynard.cabiente@raritan.com>
>>>>>Cc: linux-usb@vger.kernel.org
>>>>>Subject: RE: usb: gadget: dwc2: not getting audio data
>>>>>
>>>>>Hi Minas,
>>>>>I have attached the log where I connect to the audio gadget (and
>>>>>therefore, load the driver). We can do it using command line on a
>>>>>serial prompt or using GUI and connecting to Audio gadget.
>>>>>
>>>>>However, in both cases, I don’t see any EP1(out) data and the
>>>>>register
>>>>dump.
>>>>>Ep1out comes out only when I play a you tube video and I do arecord
>>>>>to capture data.
>>>>
>>>>According your device configuration EP1(out) using when you play
>>>>audio, and
>>>>EP1(in) using when you record audio by arecord.
>>>>So, after driver loading these both ISOC EP's will not seen in log
>>>>until aplay/arecord will not run.
>>>>
>>>>>
>>>>>Please let me know if the log doesn’t have the information you need.
>>>>
>>>>No, it's again dmesg. I asked for core all register dump which
>>>>available under debugfs's. dwc2 debugfs's under follow directory:
>>>>/sys/kernel/debug/usb/dwc2.2.auto/
>>>>In your case 'dwc2.2.auto' can be little bit different. In this
>>>>directory there are files regdump, hw_params, params, fifo, etc. Just
>>>>use 'cat regdump'
>>>>to get register dump. Please also provide me cat of hw_params, params
>>>>and fifo. These last 3 files need to cat just once after driver loading.
>>>>
>>>>>
>>>>>Also, I tried changing UAC1_DEF_REQ_NUM 2 changed to 32. I saw a
>>>>>change in the behaivor of logs, I got XferCompl all the time, and
>>>>>not
>>>ep_disabled.
>>>>
>>>>So, after defining UAC1_DEF_REQ_NUM to 32 playing audio (ep1out) work
>>>>without any issue? And increasing req number to 32 fixed issue which
>>>>we debug till now?
>>>>
>>>>>However, arecord behaivor did not change, meaning I still did not
>>>>>get the data. It only changed the logging behaivor.
>>>>
>>>>If you still see issues with arecord (ep1in) then please provide me
>>>>debug log for this case and USB trace by Ellisys.
>>>>
>>>>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.
>>>
>>>________________________________
>>>
>>>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.
>>
>>________________________________
>>
>>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.
>
>________________________________
>
>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.