Hi all,
The Sound Devices USBPre2 is an UAC2 device but recognized as a UAC1 device by Linux.
I have spend some time in order to found a solution. I have successfully setup my sound card as a UAC2 mode and I can play/record a 24/192khz without problem.
But my solution is very ugly and cannot be considered as a real solution. Perhaps alsa developers have an idea to integrated UAC2 support for the USBPRe2 in the standard stack....
There is two distinct problems: - The sound card recognizes Linux as a Windows OS and send a incorrect device descriptor. - The USB stack choose the bad configuration descriptor.
More details on first problem:
For some compatibility raison, Sound device developer want only send a UAC1 configuration when the Operating system is Windows. The used method is based on the length of the setup packet during the device get_descriptor function. If the length is 64, the OS is considered as Windows. Linux have choosen also this value. Extract of kernel source code: " NOTE: If USE_NEW_SCHEME() is true we will start by issuing a 64-byte GET_DESCRIPTOR request. This is what Windows does, so it may help with some non-standards-compliant devices."
So I have patched my kernel. In driver/usb/core/hub.c: #define GET_DESCRIPTOR_BUFSIZE 65 (instead 64)
This solve the first problem.
More details on the second problem:
Now, the USB device descriptor has two configuration descriptors :the first is a UAC1 and the second is a UAC2. My "lsusb -v -d 0926:" can be view at: http://pastebin.com/nFTN2E04
As UAC1 is a valid configuration descriptor, the usb stack choose this configuration.
I have patched the usb_choose_configuration() function in file driver/usb/core/generic.c for overwrite the value with the good one.
That all, no other problem was detected. The Linux UAC2 stack seems to be OK with this sound card.
I joined (ugly) patches , built on linux 3.7.1.
If you have an idea about how have a standard support of UAC2 for the Sound Devices USBPRe2, I (and a lot of people) will be happy.
Thanks Olivier
PS: A thread exists on LAU : http://lists.linuxaudio.org/pipermail/linux-audio-user/2013-January/089199.h...