On 23.04.2013 14:40, Torstein Hegge wrote:
> 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.

Looks good to me, but I can't test it.

You can also send Greg pull requests on GitHub, he'll pick them from there.

  https://github.com/gregkh/usbutils


Best,
Daniel


> 
> -- >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]) {
> 


------------------------------------------------------------------------------
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