USB: composite: Add usb_composite_force_reset utility to force enumeration
[firefly-linux-kernel-4.4.55.git] / drivers / usb / gadget / android.c
index 7618a073de586a6744f8cef47afefb34a1e227b4..c7a54787a04488669470c1f7b327a6fea608e158 100644 (file)
@@ -337,7 +337,7 @@ void android_enable_function(struct usb_function *f, int enable)
                         */
                        list_for_each_entry(func, &android_config_driver.functions, list) {
                                if (!strcmp(func->name, "usb_mass_storage")) {
-                                       usb_function_set_enabled(f, !enable);
+                                       usb_function_set_enabled(func, !enable);
                                        break;
                                }
                        }
@@ -348,14 +348,7 @@ void android_enable_function(struct usb_function *f, int enable)
                device_desc.idProduct = __constant_cpu_to_le16(product_id);
                if (dev->cdev)
                        dev->cdev->desc.idProduct = device_desc.idProduct;
-
-               /* force reenumeration */
-               if (dev->cdev && dev->cdev->gadget &&
-                               dev->cdev->gadget->speed != USB_SPEED_UNKNOWN) {
-                       usb_gadget_disconnect(dev->cdev->gadget);
-                       msleep(10);
-                       usb_gadget_connect(dev->cdev->gadget);
-               }
+               usb_composite_force_reset(dev->cdev);
        }
 }