74602: Fixes adb not seeing connected devices on Mac.

Every alternate time an adb server was started already connected devices were
not being seen. This was caused by opened usb connections being "stalled".
See this thread for more information: http://lists.apple.com/archives/usb/2011/Jun/msg00050.html

Change-Id: Ic35b7a66c3f14a837b960066557f44e105609dcb
Fixes: https://code.google.com/p/android/issues/detail?id=74602
This commit is contained in:
Esteban de la Canal 2014-09-11 11:02:17 -07:00 committed by Xavier Ducrohet
parent 07dda6b57c
commit a5ab96eb50

View file

@ -512,14 +512,18 @@ int usb_read(usb_handle *handle, void *buf, int len)
return -1; return -1;
} }
result = result = (*handle->interface)->ReadPipe(handle->interface, handle->bulkIn, buf, &numBytes);
(*handle->interface)->ReadPipe(handle->interface,
handle->bulkIn, buf, &numBytes);
if (0 == result) if (kIOUSBPipeStalled == result) {
DBG(" Pipe stalled, clearing stall.\n");
(*handle->interface)->ClearPipeStall(handle->interface, handle->bulkIn);
result = (*handle->interface)->ReadPipe(handle->interface, handle->bulkIn, buf, &numBytes);
}
if (kIOReturnSuccess == result)
return 0; return 0;
else { else {
DBG("ERR: usb_read failed with status %d\n", result); DBG("ERR: usb_read failed with status %x\n", result);
} }
return -1; return -1;