BZ: 13984
This patch adds gadget_disconnect() the first time disabling android_gadget via
userspace interface /sys/class/android_usb/android0/enable. This will ensure the
host can enumerate correctly when it is enabled next time.
Change-Id: Ib4c6c0fb7d72b7a1bcb2120ac0a4d23e7da6ec4b
Signed-off-by: Wu, Hao <hao.wu@intel.com>
Reviewed-on: http://android.intel.com:8080/23757
Reviewed-by: Gross, Mark <mark.gross@intel.com>
Tested-by: Gross, Mark <mark.gross@intel.com>
usb_gadget_disconnect(cdev->gadget);
usb_remove_config(cdev, &android_config_driver);
dev->enabled = false;
+ } else if (!enabled && !dev->enabled) {
+ usb_gadget_disconnect(cdev->gadget);
+ dev->enabled = false;
} else {
pr_err("android_usb: already %s\n",
dev->enabled ? "enabled" : "disabled");