|
@@ -1670,11 +1670,16 @@ int usb_hcd_alloc_bandwidth(struct usb_device *udev,
|
|
|
}
|
|
|
}
|
|
|
for (i = 0; i < num_intfs; ++i) {
|
|
|
+ struct usb_host_interface *first_alt;
|
|
|
+ int iface_num;
|
|
|
+
|
|
|
+ first_alt = &new_config->intf_cache[i]->altsetting[0];
|
|
|
+ iface_num = first_alt->desc.bInterfaceNumber;
|
|
|
/* Set up endpoints for alternate interface setting 0 */
|
|
|
- alt = usb_find_alt_setting(new_config, i, 0);
|
|
|
+ alt = usb_find_alt_setting(new_config, iface_num, 0);
|
|
|
if (!alt)
|
|
|
/* No alt setting 0? Pick the first setting. */
|
|
|
- alt = &new_config->intf_cache[i]->altsetting[0];
|
|
|
+ alt = first_alt;
|
|
|
|
|
|
for (j = 0; j < alt->desc.bNumEndpoints; j++) {
|
|
|
ret = hcd->driver->add_endpoint(hcd, udev, &alt->endpoint[j]);
|