diff options
author | LiGang <b41990@freescale.com> | 2012-08-10 19:21:47 +0800 |
---|---|---|
committer | LiGang <b41990@freescale.com> | 2012-08-10 19:21:47 +0800 |
commit | 9fb63c201a8cf97be5932c8d0e9636f367626d0c (patch) | |
tree | 096a0eeccf416a7900004471a5cda68ece4c4759 /drivers/fastboot/fastboot.c | |
parent | 526a3e74ad3e902212b80050aa76e212bafc1e1d (diff) | |
download | u-boot-imx-9fb63c201a8cf97be5932c8d0e9636f367626d0c.zip u-boot-imx-9fb63c201a8cf97be5932c8d0e9636f367626d0c.tar.gz u-boot-imx-9fb63c201a8cf97be5932c8d0e9636f367626d0c.tar.bz2 |
ENGR00220076 fix the fastboot usb re-connect issue
in fastboot mode, if usb cable re-connectted, the fastboot feature will
fail. This issue is caused by logic control oversight.
Signed-off-by: LiGang <b41990@freescale.com>
Diffstat (limited to 'drivers/fastboot/fastboot.c')
-rw-r--r-- | drivers/fastboot/fastboot.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/fastboot/fastboot.c b/drivers/fastboot/fastboot.c index 75d2034..3dcab32 100644 --- a/drivers/fastboot/fastboot.c +++ b/drivers/fastboot/fastboot.c @@ -625,6 +625,10 @@ int fastboot_usb_recv(u8 *buf, int count) while (!len) { if (is_usb_disconnected()) { + /*it will not unconfigure when disconnect + from host, so here needs manual unconfigure + anyway, it's just a workaround*/ + fastboot_configured_flag = 0; usb_disconnected = 1; return 0; } @@ -654,6 +658,10 @@ int fastboot_poll() if (usb_disconnected) { udc_disconnect(); udc_connect(); + /*the udc_connect will be blocked until connect to host + so, the usb_disconnect should be 0 after udc_connect, + and should be set manually. Anyway, it's just a workaround*/ + usb_disconnected = 0; } if (!length) |