Hi Palak, On 5/18/23 22:32, PALAK SHAH wrote: > Hi Minas, > Please see below how I test - our device name is KX4-101 > > On HOST machine, > [palakshah@localhost ~]$ aplay -L > sysdefault:CARD=KX4101 > KX4-101, USB Audio > Default Audio Device > iec958:CARD=KX4101,DEV=0 > KX4-101, USB Audio > IEC958 (S/PDIF) Digital Audio Output > > [palakshah@localhost Downloads]$ aplay -f S16_LE --rate=48000 --device iec958:CARD=KX4101,DEV=0 retro-city-14099.wav > Playing raw data 'retro-city-14099.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono > > LINUX DEVICE AS USB GADGET - > # arecord --rate 48000 -f S16_LE -D plughw:CARD=UAC1Gadget,DEV=0 test.wav > > pcm_hw.c - file name - /dev/snd/pcmC0D0c > > Recording WAVE 'test.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono > ^CAborted by signal Interrupt... > > arecord: pcm_read:2220: read error: Interrupted system call > # ls -la > drwxr-xr-x 1 1001 1001 82 May 18 13:26 . > drwxr-xr-x 1 1001 1001 322 May 4 10:36 .. > -rw-rw-rw- 1 root root 0 Feb 27 14:59 events > -rw-rw-rw- 1 root root 0 Feb 27 14:59 fast_ops- > -rw-rw-rw- 1 root root 0 Feb 27 14:59 fd > -rw-rw-rw- 1 root root 0 Feb 27 14:59 poll_descriptors > -rw-r--r-- 1 root root 44 May 18 13:26 test.wav // only 44 bytes > > # vi test.wav > RIFF$^@^@.WAVEfmt ^P^@^@^@^A^@^A^@@^_^@^@@^_^@^@^A^@^H^@data^@^@^@. > > As you can see, I am playing retro-city*.wav file on the HOST. And trying to capture it on the DEVICE. > > But the test.wav file only is 44 bytes. If the end point is receiving data and the aplay is playing wav file, then why is the arecord not getting data? > > Thanks, > Palak > Sorry, but this is out of scope of my maintenance/support of core+dwc2. By fixing request count in function driver we didn't see any more issue in core+dwc2, which confirmed by latest logs and using testusb. On my setup aplay/arecord works fine. I can't do anything more for this case. FYI, next week I'm on vacation. Thanks, Minas > -----Original Message----- > From: Minas Harutyunyan <Minas.Harutyunyan@xxxxxxxxxxxx> > Sent: Thursday, May 18, 2023 7:23 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 5/17/23 23:02, PALAK SHAH wrote: >> Hi Minas, >> >> Minas wrote: >> >>> So, to set req num to 32 resolve time gap issue and ISOC OUT transfers >>> (aplay) going OK. Please keep this 32 setting always. >> >> I will keep UAC1_DEF_REQ_NUM at 32. >> >> Please note that I am NOT DOING APLAY here. We are currently only testing SPEAKERS, not microphone. The 5.10.100 kernel has some parameter checks (f_audio_validate_opts ), so I had to enable microphone (EP4(IN)). But I am not testing microphone. >> >> I am trying to CAPTURE AUDIO on my Linux device (acting as an audio gadget). I am playing some audio using you tube on the host machine. And it sending the data to my device, which is target. The endpoint from which I want to capture data is EP1(OUT). >> >> >> Minas wrote: >> >>> Arecord. In latest log I see that function driver, besides EP1OUT (which for aplay and it normally works), >> >>> queued 32 requests to EP4IN, which I assume endpoint for ISOC IN for arecord. But transfer on EP4IN never > start. Please provide me log and usb trace when you doing aplay with arecord. >> >> >> Again, I am not running aplay yet. I am testing only arecord to make sure that the audio data from the USB target (host machine) can be retrieved. >> >> Before changing the number of request to 32, the dwc2 isochronous transfers will stop. With the count 32, the endpoint isn’t shutting down, BUT I want to capture the data using ARECORD in a file and that is not happening. The file is only 44 bytes. >> >> Below is the example of what I am doing - >> >> HOST MACHINE - >> >> PLAY AUDIO USING YOUTUBE, DEVICE SOUND SETTINGS SELECT LINUX AUDIO GADGET >> >> >> >> LINUX DEVICE (USB AUD GADGET) >> >> ARECORD -f S32_LE -c 2 test.wav // try to capture the data coming on EP1(OUT) >> >> Even though I am seeing data on EP1(OUT), the test.wav is only 44 bytes. >> >> I have attached USB trace file. The logs are the same as I sent yesterday. >> >> Thanks, >> Palak >> >> -----Original Message----- >> From: Minas Harutyunyan <Minas.Harutyunyan@xxxxxxxxxxxx> >> Sent: Wednesday, May 17, 2023 2:05 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 5/17/23 00:43, PALAK SHAH wrote: >>> 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. >>> >> >> So, to set req num to 32 resolve time gap issue and ISOC OUT transfers >> (aplay) going OK. Please keep this 32 setting always. >> >> Arecord. In latest log I see that function driver, besides EP1OUT (which for aplay and it normally works), queued 32 requests to EP4IN, which I assume endpoint for ISOC IN for arecord. But transfer on EP4IN never start. Please provide me log and usb tarce when you doing aplay with arecord. >> >>> 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. >> Wrapping from #255 to #0 is Ok, driver allocate 256 descriptors >> >> >> Thanks, >> Minas >> >>> > > On device machine run recording by follow command: > arecord -D plughw:CARD=UAC2Gadget,DEV=0 test.wav > > On host machine playing audio by follow command: > aplay -D plughw:CARD=audiogadget,DEV=0 > /usr/share/sounds/alsa/Front_Center.wav > > On play finish terminated arecord by CTRL-C > > Recorded test.wav file contain audio data. > > 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.