[alsa-devel] Some information about UsbPre2 UAC2 support
shal at free.fr
shal at free.fr
Sat Jan 26 18:50:07 CET 2013
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.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: choose_configuration.patch
Type: text/x-patch
Size: 537 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20130126/00d3093f/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: get_descriptor_bufsize.patch
Type: text/x-patch
Size: 434 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20130126/00d3093f/attachment-0001.bin>
More information about the Alsa-devel
mailing list