On Mon, Apr 22, 2013 at 23:45:49 +0200, Daniel Mack wrote:
> On 22.04.2013 21:23, Torstein Hegge wrote:
> > Even if this is against the specification, devices that does this is out
> > there. I have seen the same thing on a Sennheiser BTD-500, but that only
> > supports one frequency, so I didn't hit this problem.
> 
> Yes, if that's the case, we should patch both lsusb and the snd-usb
> driver. Let's see who provides a patch first :)

I think the lsusb patch should look something like this. Unless you have
objections, I'll try to poke Greg KH via the linux-usb mailing list.

-- >8 --
Subject: [PATCH] lsusb: Parse misplaced UAC1 AudioControl Endpoint Descriptor

Some UAC devices (Sennheiser BTD-500 and some firmware revisions of
Plantronics USB headsets) has the class specific endpoint descriptor in
front of the standard endpoint descriptor. Print the "AudioControl
Endpoint Descriptor" where it appears, instead of showing
"UNRECOGNIZED".
---
 lsusb.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/lsusb.c b/lsusb.c
index 5118114..470146c 100644
--- a/lsusb.c
+++ b/lsusb.c
@@ -586,6 +586,22 @@ static void dump_altsetting(libusb_device_handle *dev, 
const struct libusb_inter
                                                goto dump;
                                        }
                                        break;
+                               case LIBUSB_CLASS_AUDIO:
+                                       switch (buf[1]) {
+                                       /* MISPLACED DESCRIPTOR */
+                                       case USB_DT_CS_ENDPOINT:
+                                               switch 
(interface->bInterfaceSubClass) {
+                                               case 2:
+                                                       
dump_audiostreaming_endpoint(buf, interface->bInterfaceProtocol);
+                                                       break;
+                                               default:
+                                                       goto dump;
+                                               }
+                                               break;
+                                       default:
+                                               goto dump;
+                                       }
+                                       break;
                                default:
                                        /* ... not everything is class-specific 
*/
                                        switch (buf[1]) {
-- 
1.7.10.4


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to