Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Oct 2013 07:12:32 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Hans Petter Selasky <hps@bitfrost.no>
Cc:        "freebsd-usb@freebsd.org" <freebsd-usb@freebsd.org>
Subject:   Re: usb/183505: [usb] Arduino Leonardo exposes three interface descriptors but no modem is attached to the first one (bInterfaceSubClass=2)
Message-ID:  <CAJ-Vmo=_q9ohb-CEH8jX9c5ie9eSyWR=pQ=PQi2qgLKmeiB3BA@mail.gmail.com>
In-Reply-To: <5272055D.5000609@bitfrost.no>
References:  <201310310100.r9V102Bw068142@freefall.freebsd.org> <5272055D.5000609@bitfrost.no>

next in thread | previous in thread | raw e-mail | index | archive | help
Cool, committed!

I'll get it MFCed to 10 soon.

Thanks!


-a


On 31 October 2013 00:23, Hans Petter Selasky <hps@bitfrost.no> wrote:
> On 10/31/13 02:00, Adrian Chadd wrote:
>>
>> The following reply was made to PR usb/183505; it has been noted by GNATS.
>>
>> From: Adrian Chadd <adrian@freebsd.org>
>> To: Mike Meyer <mwm@mired.org>
>> Cc: "bug-followup@freebsd.org" <bug-followup@freebsd.org>
>> Subject: Re: usb/183505: [usb] Arduino Leonardo exposes three interface
>>   descriptors but no modem is attached to the first one
>> (bInterfaceSubClass=2)
>> Date: Wed, 30 Oct 2013 17:59:49 -0700
>>
>>   Gah, browser stupidity.
>>
>>   Here's the real one:
>>
>>   adrian@lucy-11i386:~/work/freebsd/head/src % svn diff sys/dev/usb
>>   Index: sys/dev/usb/serial/umodem.c
>>   ===================================================================
>>   --- sys/dev/usb/serial/umodem.c (revision 257371)
>>   +++ sys/dev/usb/serial/umodem.c (working copy)
>>   @@ -128,6 +128,9 @@
>>           {USB_IFACE_CLASS(UICLASS_CDC),
>>                   USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
>>                   USB_IFACE_PROTOCOL(UIPROTO_CDC_AT)},
>>   +       {USB_IFACE_CLASS(UICLASS_CDC),
>>   +               USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
>>   +               USB_IFACE_PROTOCOL(UIPROTO_CDC_NONE)},
>>           /* Huawei Modem class match */
>>           {USB_IFACE_CLASS(UICLASS_CDC),
>>                   USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
>>   Index: sys/dev/usb/usb.h
>>   ===================================================================
>>   --- sys/dev/usb/usb.h   (revision 257371)
>>   +++ sys/dev/usb/usb.h   (working copy)
>>   @@ -441,6 +441,7 @@
>>    #define        UISUBCLASS_ETHERNET_EMULATION_MODEL 12
>>    #define        UISUBCLASS_NETWORK_CONTROL_MODEL 13
>>
>>   +#define        UIPROTO_CDC_NONE                0
>>    #define        UIPROTO_CDC_AT                  1
>>
>>    #define        UICLASS_HID             0x03
>>
>>   The USB 1.1 specification states that CDC=0 is just "no command
>>   structure over the line", versus CDC=1 which says "AT commands".
>>
>>   This is enough to make the Leonardo work fine.
>>
>>   Thanks to everyone else who fixed the USB protocol mis-behvaiour!
>>
>>
>>
>>   -adrian
>
>
> This patch is fine by me.
>
> --HPS
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=_q9ohb-CEH8jX9c5ie9eSyWR=pQ=PQi2qgLKmeiB3BA>