On Fri, Dec 16, 2011 at 02:49:05PM +0100, Clemens Ladisch wrote:
Richard W.M. Jones wrote:
The attached patch fixes USB audio support for the Jabra SPEAK 410 USB.
The problem, as I understand it, is that the device contains a Class-Specific Endpoint (CS_ENDPOINT) descriptor before the Endpoint (ENDPOINT) descriptor. The USB code all assumes that CS_ENDPOINT can only appear after ENDPOINT. Therefore the USB code divides up the interface descriptor into "stuff before ENDPOINT" (in interface->extra) and "stuff after ENDPOINT" (in interface->endpoint[0]->extra). For this device, this division does not work.
The solution (which is a hack ...) is to also search interface->extra looking for the missing descriptor.
The patch looks good. Please run it through checkpatch.pl and provice a Signed-off-by tag (see Documentation/SubmittingPatches).
Sorry, I should have followed up on this list ...
Tom (in the CC line) opened a bug with Jabra, and they have issued a firmware update. Unfortunately this update requires some Windows software to run. I applied this, and it does appear to fix the audio playback problem, though curiously it doesn't completely fix the ENDPOINT/CS_ENDPOINT problem, so who knows what's really going on there.
Anyway, should you want the update it is here:
https://bugzilla.redhat.com/show_bug.cgi?id=766714#c1
Thanks Tom!
Rich.