From 43fd1a4ea72ec96de2790a6703722e900b354de6 Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Tue, 7 Mar 2017 17:30:03 -0800 Subject: [PATCH] adb: Do not signal gaget stack unless descriptors are written While recovering from endpoint errors, the gadget stack was being signalled even when desriptors were NOT being rewritten. Avoid this as this might cause enumeration loops. Bug: 36036550 Change-Id: Iff2b2fc8cded001ef3c77dc170dce3b96848970c --- adb/daemon/usb.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adb/daemon/usb.cpp b/adb/daemon/usb.cpp index c08b922a6..92e9039a7 100644 --- a/adb/daemon/usb.cpp +++ b/adb/daemon/usb.cpp @@ -283,6 +283,8 @@ bool init_functionfs(struct usb_handle* h) { D("[ %s: writing strings failed: errno=%d]", USB_FFS_ADB_EP0, errno); goto err; } + //Signal only when writing the descriptors to ffs + android::base::SetProperty("sys.usb.ffs.ready", "1"); } h->bulk_out = adb_open(USB_FFS_ADB_OUT, O_RDWR); @@ -358,7 +360,6 @@ static void usb_ffs_open_thread(void* x) { } std::this_thread::sleep_for(1s); } - android::base::SetProperty("sys.usb.ffs.ready", "1"); D("[ usb_thread - registering device ]"); register_usb_transport(usb, 0, 0, 1);