USB: gadget: composite: Don't increment interface number for alt settings.
authorMike Lockwood <lockwood@android.com>
Fri, 26 Feb 2010 14:34:19 +0000 (09:34 -0500)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 20:02:59 +0000 (12:02 -0800)
Signed-off-by: Mike Lockwood <lockwood@android.com>
drivers/usb/gadget/composite.c

index cf7a5cf..fa785c6 100644 (file)
@@ -326,8 +326,13 @@ static int config_buf(struct usb_configuration *config,
                dest = next;
                while ((descriptor = *descriptors++) != NULL) {
                        intf = (struct usb_interface_descriptor *)dest;
-                       if (intf->bDescriptorType == USB_DT_INTERFACE)
-                               intf->bInterfaceNumber = interfaceCount++;
+                       if (intf->bDescriptorType == USB_DT_INTERFACE) {
+                               /* don't increment bInterfaceNumber for alternate settings */
+                               if (intf->bAlternateSetting == 0)
+                                       intf->bInterfaceNumber = interfaceCount++;
+                               else
+                                       intf->bInterfaceNumber = interfaceCount - 1;
+                       }
                        dest += intf->bLength;
                }