USB: android: Don't disable configuration for every adb close
Certain ADB commands like "adb usb" and "adb root" restart the adb daemon running on the device. These commands require USB bus reset, otherwise adb commands on the host side would stuck for ever. USB bus reset can be forced from device side by re-enabling the same composition. Earlier, configuration is disabled when adb daemon closes /dev/android_usb device file. The configuration is enabled again after adb daemon opens the device file. This approach solves the "adb usb" problem with the below side effects. 1. When USB cable is disconnected, the Rx request is flushed and an error code is returned to user space. The adb daemon is simply restarted in this case which cause an unnecessary rebinding of all functions. 2. The above scenario can happen if host reset the bus when device is in configured state. If device disable pull-up during, bus reset, USB CV CH9 test cases are failing. The commit d9b18977 (USB: android: Avoid re-enabling the same configuration) fixed the above side effects. But silently ignores the original "adb usb" problem. This commit is another attempt to solve all the above mentioned problems by forcing re-enumeration only when device is in connected state. That means, "adb usb" and "adb root" commands force usb bus reset where as plugging out a cable does not. (cherry picked from commit 1aa235a6c0a3d67bff24609766baf5a7d5d8e3e4) (cherry picked from commit 81fefe664ab6333f05209bed959a599a47baf71f) Change-Id: Id3a40f62dd51aba6ec690d3326ed67ced32b946a CRs-Fixed: 407882 Signed-off-by:Pavankumar Kondeti <pkondeti@codeaurora.org> Signed-off-by:
Neha Pandey <nehap@codeaurora.org>
Loading
Please sign in to comment