On Sat, 2010-10-16 at 12:25 +0200, Julian Scheel wrote:
Thanks, I implemented them the way same you did. So for get_min/max/cur I always return 48kHz and set_cur simply does nothing. Now playback in general works again. But still the rate feedback seems to have no impact on the data-rate. Also the frequency value shown in proc-interface is unchanged. When rate feedback works, it would probably be slightly different than 48.000kHz?!
Hi Julian,
OK, you are getting close :-)
One debug technique we have been using is to do a USB wire dump, using something like wireshark. This way you can see exactly what goes on between the PC host and the device.
The other technique is to build a special debug kernel to have copious debug messages.
You might want to double check on the EP limitations. Is the feedback EP capable of ISO transfer? Are you able to use 4 bytes as the max EP size? Is the EP double buffered (required for ISO transfers)? With the wireshark dump you will be able to see exactly what is transferred as the feedback rate.
Also, the Max EP size of the ISO OUT data EP should only be one sample frame (ie 4 bytes in your case - 16 bits x stereo) bigger than the "correct" frame size, ie 192 bytes ====> 196 bytes.
I looked through your updated USB descriptors and they appear to be correct.
Alex