Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Oct 2013 01:00:02 GMT
From:      Adrian Chadd <adrian@freebsd.org>
To:        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:  <201310310100.r9V102Bw068142@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310310100.r9V102Bw068142>