Under what circumstances would the board return silence even when there is a signal? We are using the various versions of snd_usb_audio in kernels over the last few years. Note that playback is always fine. The second green led does come on during recording, and USB meter does show 5V/0.18A as expected. It happens on various ARM boards, as well as regular x86 workstations. I've even connected the line out straight back into line in while playing audio to the board, just to eliminate more possibilities.
There is considerably more investigation we have done, but cannot find any common factor. I'm more than happy to give many paragraphs of everything we've tried (power, hubs, disabling usb suspend, USB 2 vs 3 ports, usb bus resets, cpu governors, and the list goes on an on).
Here is an example of how we see silence. Non xmos devices give lots of non-zero bytes of output.
Code: Select all
$ arecord -L
....
hw:CARD=X20,DEV=0
XMOS USB Audio 2.0, USB Audio
Direct hardware device without any conversions
....
$ arecord --device hw:CARD=X20,DEV=0 --duration 10 --channels 2 --rate 44100 -t raw --format S32_LE | hexdump
Recording raw data 'stdin' : Signed 32 bit Little Endian, Rate 44100 Hz, Stereo
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
035d540
Code: Select all
idVendor 0x20b1 XMOS Ltd
idProduct 0x000a
bcdDevice 6.50
iManufacturer 1
iProduct 3
iSerial 0