OSDN Git Service

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)
committerBrian Swetland <swetland@google.com>
Tue, 29 Mar 2011 20:57:43 +0000 (13:57 -0700)
Signed-off-by: Mike Lockwood <lockwood@android.com>
drivers/usb/gadget/composite.c

index 839da23..b1f4016 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;
                }