summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Gilling <konkers@android.com>2011-05-06 08:53:43 -0700
committerErik Gilling <konkers@android.com>2011-05-06 08:53:43 -0700
commit37b17198802492c640f4a2266b021af08c1257f0 (patch)
treec8ef752de9cbe6145ad8ced9e9cf478c103d8ac6
parentc9d11c46ace97284fb0fedb8f56dc2af2b8f4595 (diff)
downloadarduino-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.cpp6
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;
}