Hi,
This is my second try to get support for all supported sample rates for the Fast Track Ultra (FTU) series into mainline alsa.
For clarification: Current Alsa already recognizes the supported sample rates. But it will sound very corrupted at 44.1000 Hz and 88.200 Hz. Without this patch your system will even probably freeze eventually when using the FTU at 44.100/88.200 Hz too long.
So the key idea in this patch is not to get 44.1 kHz and 88.2 kHz listed as supported sample rates (as they already are recognized) but to change the endpoint attributes.
Citing dhubsith on the M-Audio forum:
" The problem with using QUIRK_AUDIO_STANDARD_INTERFACE rather than QUIRK_AUDIO_FIXED_ENDPOINT is that ep_attr does not get set correctly. The device default for synchronization is async (0x05) for both capture and playback, but in fact it should be set to adaptive (0x09) on playback, so that playback follows capture, this way you don't get capture and playback using different sample rates.
Also, the Interface Class protocol for the device defaults to Vendor Specific Class, but the driver only recognizes Class 1 or 2. The device is really Class 1, so we have to force it to reflect this. There are 4 places that we need to set this."
The patch has been discussed starting here:
http://forums.m-audio.com/showthread.php?714-Not-a-problem.-FastTrack-on-lin...
The "key" has been found by dhubsith. Please read posts #79, #81, #84, #87, #97.
In post #102 of that forum you can even find an alternate patch by dhubsith which doesn't use a fixed endpoint quirk but sets
protocol = UAC_VERSION_1;
for the FTU devices in sound/usb/format .c. You might even consider that patch. (I've resend it to alsa-devel yesterday).
After all, either one of the above mentioned patches should go into alsa, as right now we can't use the FTU devices at 44.1 and 88.2 kHz.
Kind regards,
Felix