usb/183505: [usb] Arduino Leonardo exposes three interface descriptors but no modem is attached to the first one (bInterfaceSubClass=2)
Adrian Chadd
adrian at freebsd.org
Thu Oct 31 14:12:33 UTC 2013
Cool, committed!
I'll get it MFCed to 10 soon.
Thanks!
-a
On 31 October 2013 00:23, Hans Petter Selasky <hps at 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 at freebsd.org>
>> To: Mike Meyer <mwm at mired.org>
>> Cc: "bug-followup at freebsd.org" <bug-followup at 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 at 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
>
More information about the freebsd-usb
mailing list