Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbb7981e authored by Jiebing Li's avatar Jiebing Li Committed by Bo Huang
Browse files

Fastboot: fix fastboot timeout issue of Windows host side



Normally fastboot follows the procedure that host sends a command
to device and device sends back response after the command
is executed.

But sometimes device spends too long time to execute the command
so that timeout error occurs before host receives the response.

This patch fixes the issue by aligning with the solution of ADB.
ADB commit id: 1c4b760a

Change-Id: I50e6bf428ea38219b64cca6ab82db22af28e0264
Author: Jiebing Li <jiebing.li@intel.com>
Signed-off-by: default avatarBo Huang <bo.b.huang@intel.com>
parent 72031ab8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ usb_handle* do_usb_open(const wchar_t* interface_name) {
}

int usb_write(usb_handle* handle, const void* data, int len) {
    unsigned long time_out = 500 + len * 8;
    unsigned long time_out = 5000;
    unsigned long written = 0;
    unsigned count = 0;
    int ret;
@@ -194,7 +194,7 @@ int usb_write(usb_handle* handle, const void* data, int len) {
}

int usb_read(usb_handle *handle, void* data, int len) {
    unsigned long time_out = 500 + len * 8;
    unsigned long time_out = 0;
    unsigned long read = 0;
    int ret;

@@ -212,7 +212,7 @@ int usb_read(usb_handle *handle, void* data, int len) {
            DBG("usb_read got: %ld, expected: %d, errno: %d\n", read, xfer, errno);
            if (ret) {
                return read;
            } else if (errno != ERROR_SEM_TIMEOUT) {
            } else {
                // assume ERROR_INVALID_HANDLE indicates we are disconnected
                if (errno == ERROR_INVALID_HANDLE)
                    usb_kick(handle);