diff options
author | Erik Gilling <konkers@android.com> | 2011-05-06 08:53:43 -0700 |
---|---|---|
committer | Erik Gilling <konkers@android.com> | 2011-05-06 08:53:43 -0700 |
commit | 37b17198802492c640f4a2266b021af08c1257f0 (patch) | |
tree | c8ef752de9cbe6145ad8ced9e9cf478c103d8ac6 | |
parent | c9d11c46ace97284fb0fedb8f56dc2af2b8f4595 (diff) | |
download | arduino-37b17198802492c640f4a2266b021af08c1257f0.tar.gz |
AndroidAccessory: wait for disconnect on setup
This was causing the Nexus S to not re-enumerate correctly
Change-Id: I11285bdd0ba23d42d8f0b2235b1a81d937402f1b
Signed-off-by: Erik Gilling <konkers@android.com>
-rw-r--r-- | AndroidAccessory/AndroidAccessory.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/AndroidAccessory/AndroidAccessory.cpp b/AndroidAccessory/AndroidAccessory.cpp index 2e86a42..a864b90 100644 --- a/AndroidAccessory/AndroidAccessory.cpp +++ b/AndroidAccessory/AndroidAccessory.cpp @@ -92,6 +92,12 @@ bool AndroidAccessory::switchDevice(byte addr) usb.ctrlReq(addr, 0, USB_SETUP_HOST_TO_DEVICE | USB_SETUP_TYPE_VENDOR | USB_SETUP_RECIPIENT_DEVICE, ACCESSORY_START, 0, 0, 0, 0, NULL); + + while (usb.getUsbTaskState() != USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE) { + max.Task(); + usb.Task(); + } + return true; } |