I started with the USB Gadget Mass Storage example from the Xilinx Wiki. I have this working.
Now I want to do g_audio, basically to stream a WAV file from my ZC702 to my computer via USB.
I'm able to build the g_audio, usb_f_uac2, libcomposite, etc. I then plug my ZC702 into my host linux box, and I see the gadget sound card just fine.
However, when I tell the 702 to "aplay -Dhw:0,0 test.wav" (while on the host telling it to arecord -Dhw:0,0 -c2 -r48000 -fS16_LE -twav test.wav) both sides give me:
(PC): arecord: pcm_read:2103: read error: Input/output error
(ZC702): aplay: pcm_write:1940: write error: Input/output error
This generally comes when no data is being transferred either direction and ALSA craps out.
dmesg on the host has lots of:
[ 437.714956] usb 1-1: timeout: still 2 active urbs on EP #1
and dmesg on the ZC702 has:
[10063.355539] g_audio gadget: suspend
Google tells me this might be due to low power mode?