Wait for disconnect when rebooting to userspace FB
Wait for the device to disconnect when rebooting to userspace fastboot. This is a particular problem for USB-over-IP devices, which must tunnel the USB commands over a relatively-slow network and thus will not disconnect as quickly as local ones. Only currently effective for Linux hosts, since LinuxUsbTransport is the only transport that implements WaitForDisconnect(). Test Plan: provision with a usbip-attached device, see flash succeed Change-Id: Ia8903dfa6e40755377870fbeaef9162934f992a0
This commit is contained in:
parent
7cf49320ba
commit
7199051aaf
1 changed files with 6 additions and 1 deletions
|
@ -1547,9 +1547,14 @@ bool is_userspace_fastboot() {
|
|||
|
||||
void reboot_to_userspace_fastboot() {
|
||||
fb->RebootTo("fastboot");
|
||||
if (fb->WaitForDisconnect() != fastboot::SUCCESS) {
|
||||
die("Error waiting for USB disconnect.");
|
||||
}
|
||||
fb->set_transport(nullptr);
|
||||
|
||||
// Give the current connection time to close.
|
||||
// Not all platforms support WaitForDisconnect. There also isn't a great way to tell whether
|
||||
// or not WaitForDisconnect is supported. So, just wait a bit extra for everyone, in order to
|
||||
// make sure that the device has had time to initiate its reboot and disconnect itself.
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
|
||||
fb->set_transport(open_device());
|
||||
|
|
Loading…
Reference in a new issue