On Wed, 14 Dec 2011, Pete Zaitcev wrote: > I think this belongs at linux-usb@xxxxxxxxxxxxxxx, forwarding (converting > the attachment inline). > > Perhaps a better option would be to poke around drivers/usb/core/config.c, > but I do not remember details anymore, so I may be wrong. I'll try to look > at it tomorrow. I don't think the descriptor-parsing code in config.c needs to be changed. Both the USB-2.0 and the USB Common Class specs state that class-specific modifier descriptors must follow the descriptor they modify. If the Jabra device has a descriptor in the wrong place, adding special-case quirk code to the driver, not the core, is appropriate. Alan Stern > -- Pete > > Begin forwarded message: > > Date: Sat, 10 Dec 2011 19:45:39 +0000 > From: "Richard W.M. Jones" <rjones@xxxxxxxxxx> > To: alsa-devel@xxxxxxxxxxxxxxxx > Cc: Tom Walder <tom.walder@xxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx > Subject: [PATCH] Jabra SPEAK 410 USB - no audio playback > > 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. > > You can see lsusb for my device here: > http://mailman.alsa-project.org/pipermail/alsa-devel/2011-December/047036.html > Notice the "** UNRECOGNIZED: 07 25 01 81 02 00 00" line which is the > CS_ENDPOINT descriptor. > > The solution (which is a hack ...) is to also search interface->extra > looking for the missing descriptor. > > For me, this fully enables the functions of this device. > > Rich. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html