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:
parent
07dda6b57c
commit
a5ab96eb50
1 changed files with 9 additions and 5 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue