|
@@ -837,7 +837,11 @@ int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_
|
|
|
|
|
|
iface_no = ctx->data->cur_altsetting->desc.bInterfaceNumber;
|
|
|
|
|
|
- /* reset data interface */
|
|
|
+ /* Reset data interface. Some devices will not reset properly
|
|
|
+ * unless they are configured first. Toggle the altsetting to
|
|
|
+ * force a reset
|
|
|
+ */
|
|
|
+ usb_set_interface(dev->udev, iface_no, data_altsetting);
|
|
|
temp = usb_set_interface(dev->udev, iface_no, 0);
|
|
|
if (temp) {
|
|
|
dev_dbg(&intf->dev, "set interface failed\n");
|