Hi Minas, Last week I was able to install g_zero driver on the device side. And I installed usbtest.ko as a static driver on the linux host kernel running kernel version 5.0.9. On the host I see - [palakshah@localhost usb]$ lsusb Bus 002 Device 002: ID 8087:8000 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:8008 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 006: ID 0525:a4a0 Netchip Technology, Inc. Linux-USB "Gadget Zero" // g_zero driver Bus 003 Device 002: ID 04b4:0101 Cypress Semiconductor Corp. Keyboard/Hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub I ran the test [palakshah@localhost usb]$ sudo ./testusb -a unknown speed /dev/bus/usb/003/006 0 /dev/bus/usb/003/006 test 0, 0.000013 secs /dev/bus/usb/003/006 test 1, 0.216270 secs /dev/bus/usb/003/006 test 2, 0.096186 secs /dev/bus/usb/003/006 test 3, 0.216282 secs /dev/bus/usb/003/006 test 4, 0.096046 secs /dev/bus/usb/003/006 test 5, 2.870960 secs /dev/bus/usb/003/006 test 6, 3.055972 secs /dev/bus/usb/003/006 test 7, 2.872110 secs /dev/bus/usb/003/006 test 8, 3.059713 secs /dev/bus/usb/003/006 test 9, 8.601377 secs /dev/bus/usb/003/006 test 10, 26.794975 secs /dev/bus/usb/003/006 test 11, 4.006801 secs /dev/bus/usb/003/006 test 12, 4.002395 secs /dev/bus/usb/003/006 test 13, 4.874480 secs /dev/bus/usb/003/006 test 14 --> 22 (Invalid argument) /dev/bus/usb/003/006 test 17, 0.185385 secs /dev/bus/usb/003/006 test 18, 0.098154 secs /dev/bus/usb/003/006 test 19, 0.197473 secs /dev/bus/usb/003/006 test 20, 0.098188 secs /dev/bus/usb/003/006 test 21 --> 22 (Invalid argument) Atleast now I can run some of the tests, however I am interested in the ISOC transfer, which is tested using t15 and t16. But test 15 and 16 did not run. I put more messages in the code and I found that, it exits both the tests - if (dev->out_iso_pipe == 0 || param->sglen == 0){ pr_info("TEST 15: dev->out_iso_pipe == 0 || param->sglen == 0 Error condition!!\n"); break; } I put more messages in the code, and I realize that dev->out_iso_pipe is null. if (dev->in_pipe){ printk("dev->in_pipe is true\n"); this gets printed rtest = " bulk-in"; } if (dev->out_pipe){ printk("dev->out_pipe is true\n"); this gets printed wtest = " bulk-out"; } if (dev->in_iso_pipe){ printk("dev->in_iso_pipe is true\n"); // this doesn't get printed. irtest = " iso-in"; } if (dev->out_iso_pipe){ printk("dev->out_iso_pipe is true\n"); // not printed iwtest = " iso-out"; } Some dmesg messages that I printed, it prints in_pipe and out_pipe is true for BULK transfer, but ISOC transfer is not set. [ 2.051466] usb 3-8: New USB device found, idVendor=0525, idProduct=a4a0, bcdDevice= 5.04 [ 2.051468] usb 3-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.051469] usb 3-8: Product: Gadget Zero [ 2.051470] usb 3-8: Manufacturer: Linux 5.4.80-kx4 with ffb40000.usb [ 2.051471] usb 3-8: SerialNumber: 0123456789.0123456789.0123456789 [ 2.053199] USBTEST.ko usbtest_probe!!! [ 2.053200] dev->in_pipe is true [ 2.053200] dev->out_pipe is true [ 2.053201] USBTEST : Linux gadget zero [ 2.053202] USBTEST high-speed {control in/out bulk-in bulk-out} tests (+alt) [ 2.166449] usb 3-10: new low-speed USB device number 3 using xhci_hcd Any idea how I can test ISOC test? Thanks, Palak -----Original Message----- From: Minas Harutyunyan <Minas.Harutyunyan@xxxxxxxxxxxx> Sent: Friday, March 10, 2023 4:04 AM To: Palak SHAH <palak.shah@xxxxxxxxxxx>; Maynard CABIENTE <maynard.cabiente@xxxxxxxxxxx> Cc: linux-usb@xxxxxxxxxxxxxxx Subject: RE: usb: gadget: dwc2: not getting audio data Hi Palak, >On 3/9/2023 8:21 PM, Palak SHAH wrote: >From: Palak SHAH <palak.shah@xxxxxxxxxxx> >Sent: Thursday, March 9, 2023 8:21 PM >To: Minas Harutyunyan <hminas@xxxxxxxxxxxx>; Maynard CABIENTE ><maynard.cabiente@xxxxxxxxxxx> >Cc: linux-usb@xxxxxxxxxxxxxxx >Subject: RE: usb: gadget: dwc2: not getting audio data > >Hi Minas, >Yes I do have g_audio module loaded. > >This dmesg logs are from my device - >[ 1151.517385] g_audio gadget: Linux USB Audio Gadget, version: Feb 2, >2012 [ 1151.517401] g_audio gadget: g_audio ready [ 1151.517418] dwc2 >ffb00000.usb: bound driver g_audio [ 1151.640143] dwc2 ffb40000.usb: >bound driver configfs-gadget [ 1151.808188] dwc2 ffb40000.usb: new >device is high- speed [ 1151.922374] dwc2 ffb40000.usb: new device is >high-speed [ 1151.982406] dwc2 ffb40000.usb: new address 24 [ >1151.996762] configfs- gadget gadget: high-speed config #1: c > ># lsmod >Module Size Used by >usb_f_uac1 20480 3 >u_audio 20480 1 usb_f_uac1 >snd_pcm 94208 1 u_audio >snd_timer 36864 1 snd_pcm >g_audio 16384 0 >usb_f_hid 20480 9 >libcomposite 61440 16 usb_f_uac1,u_audio,g_audio,usb_f_hid > >This is my host - >[palakshah@fedora ~]$ lsusb >Bus 002 Device 002: ID 0bda:0328 Realtek Semiconductor Corp. USB3.0-CRW >Bus >002 Device 003: ID 0bda:0411 Realtek Semiconductor Corp. Hub Bus 002 >Device >001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 023: ID >14dd:1010 Raritan Computer, Inc. KX4-101 // this is my device that I am >connected to. >Bus 001 Device 002: ID 14dd:1007 Raritan Computer, Inc. D2CIM-VUSB KVM >connector Bus 001 Device 005: ID 8087:0a2b Intel Corp. Bluetooth >wireless interface Bus 001 Device 004: ID 0bda:5411 Realtek Semiconductor Corp. >RTS5411 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root >hub > >[palakshah@fedora ~]$ sudo ./testusb -D /dev/bus/usb/001/023 -t15 >[sudo] password for palakshah: >./testusb: /dev/bus/usb/001/023 may see only control tests >/dev/bus/usb/001/023 test 15 --> 25 (Inappropriate ioctl for device) > >[palakshah@fedora ~]$ sudo ./testusb -D /dev/bus/usb/001/023 -t16 >./testusb: /dev/bus/usb/001/023 may see only control tests >/dev/bus/usb/001/023 test 16 --> 25 (Inappropriate ioctl for device) > >But still host cannot talk to the device. > On host side should be loaded module usbtest.ko On device side remove your function(gadget) driver, instead load g_zero (not g_audio) function. Thanks, Minas >Thanks, >Palak > >-----Original Message----- >From: Minas Harutyunyan <Minas.Harutyunyan@xxxxxxxxxxxx> >Sent: Thursday, March 9, 2023 5:03 AM >To: Palak SHAH <palak.shah@xxxxxxxxxxx>; Maynard CABIENTE ><maynard.cabiente@xxxxxxxxxxx> >Cc: linux-usb@xxxxxxxxxxxxxxx >Subject: RE: usb: gadget: dwc2: not getting audio data > >Hi Palak, > >>On 3/9/2023 1:42 AM, Palak SHAH wrote: >>From: Palak SHAH <palak.shah@xxxxxxxxxxx> >>Sent: Thursday, March 9, 2023 1:42 AM >>To: Minas Harutyunyan <hminas@xxxxxxxxxxxx>; Maynard CABIENTE >><maynard.cabiente@xxxxxxxxxxx> >>Cc: linux-usb@xxxxxxxxxxxxxxx >>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=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Feur01.saf >>e >>links.protection.outlook.com*2F&data=05*7C01*7Cpalak.shah*40raritan.co >>m >>*7Ce899edf3108b4733963408db2085841d*7C199686b5bef4496087867a6b1888fee3 >>* >>7C1*7C0*7C638139530054005175*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM >>D >>AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata >>= >>efRKGkGDjq5OhK347*2B6r2*2FaXjZy4wysBzzl5XezhEZo*3D&reserved=0*__;JSUlJ >>S >>UlJSUlJSUlJSUlJSUlJSUlJSUlJSUlPw!!A4F2R9G_pg!fXoTRt1krMtYNUcU033cc_CYw >>9 YrC_nUj99EXR4vAwT-hb3T78zqvyakXvx4elweFNfmoHxwarh2RDYX7L7rJqCcWz9z$ >>url=http*3A*2F*2Fwww.linux- >>usb.org*2Fusbtest*2F&data=05*7C01*7Cpalak.shah*40raritan.com*7Ccdc9cf1 >>8 >>d5c54 >>b2c74fc08daf53d681e*7C199686b5bef4496087867a6b1888fee3*7C1*7C0*7C63809 >>1 >>94134 >>5558693*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLC >>J >>BTiI6 >>Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata=OIiLXl6dlCHlfACx6ZxpLhQkp >>0 >>7xIwb >>qAR3CtnqfsFU*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUl!!A4F2R9G_pg! >>f >>3GN6S >>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@xxxxxxxxxxxx> >>Sent: Monday, March 6, 2023 11:31 PM >>To: Palak SHAH <palak.shah@xxxxxxxxxxx>; Maynard CABIENTE >><maynard.cabiente@xxxxxxxxxxx> >>Cc: linux-usb@xxxxxxxxxxxxxxx >>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@xxxxxxxxxxx> >>>Sent: Monday, March 6, 2023 8:26 PM >>>To: Minas Harutyunyan <hminas@xxxxxxxxxxxx>; Maynard CABIENTE >>><maynard.cabiente@xxxxxxxxxxx> >>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>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@xxxxxxxxxxxx> >>>Sent: Thursday, March 2, 2023 11:35 PM >>>To: Palak SHAH <palak.shah@xxxxxxxxxxx>; Maynard CABIENTE >>><maynard.cabiente@xxxxxxxxxxx> >>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>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@xxxxxxxxxxx> >>>>Sent: Tuesday, February 28, 2023 12:21 AM >>>>To: Minas Harutyunyan <hminas@xxxxxxxxxxxx>; Maynard CABIENTE >>>><maynard.cabiente@xxxxxxxxxxx> >>>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>>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@xxxxxxxxxxxx> >>>>Sent: Monday, February 27, 2023 5:18 AM >>>>To: Palak SHAH <palak.shah@xxxxxxxxxxx>; Maynard CABIENTE >>>><maynard.cabiente@xxxxxxxxxxx> >>>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>>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@xxxxxxxxxxx> >>>>>Sent: Monday, February 27, 2023 6:02 AM >>>>>To: Minas Harutyunyan <hminas@xxxxxxxxxxxx>; Maynard CABIENTE >>>>><maynard.cabiente@xxxxxxxxxxx> >>>>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>>>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@xxxxxxxxxxxx> >>>>>Sent: Friday, February 24, 2023 5:33 AM >>>>>To: Palak SHAH <palak.shah@xxxxxxxxxxx>; Maynard CABIENTE >>>>><maynard.cabiente@xxxxxxxxxxx> >>>>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>>>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@xxxxxxxxxxx> >>>>>>Sent: Friday, February 24, 2023 3:04 AM >>>>>>To: Minas Harutyunyan <hminas@xxxxxxxxxxxx>; Maynard CABIENTE >>>>>><maynard.cabiente@xxxxxxxxxxx> >>>>>>Cc: linux-usb@xxxxxxxxxxxxxxx >>>>>>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.