diff options
author | Tom Rini <trini@ti.com> | 2013-08-01 09:19:28 -0400 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2013-08-01 09:19:28 -0400 |
commit | 245d65b6e503f3a159cffb3392ac3b2c25606d8e (patch) | |
tree | 468379202891d516817dfad73ac6ba907bb1156a /common/cmd_dfu.c | |
parent | 327b5c9f7cde4e621c2f49fbd2e9890d32f2bef8 (diff) | |
parent | 8bc3603675f7bf4dfa4eb6bdaf2aa0a8ddce9fa6 (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-usb
Diffstat (limited to 'common/cmd_dfu.c')
-rw-r--r-- | common/cmd_dfu.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c index db066acc36..793c422123 100644 --- a/common/cmd_dfu.c +++ b/common/cmd_dfu.c @@ -19,8 +19,8 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { const char *str_env; char *s = "dfu"; + int ret, i = 0; char *env_bkp; - int ret; if (argc < 3) return CMD_RET_USAGE; @@ -49,6 +49,15 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) g_dnl_register(s); while (1) { + if (dfu_reset()) + /* + * This extra number of usb_gadget_handle_interrupts() + * calls is necessary to assure correct transmission + * completion with dfu-util + */ + if (++i == 10) + goto exit; + if (ctrlc()) goto exit; @@ -60,6 +69,9 @@ done: dfu_free_entities(); free(env_bkp); + if (dfu_reset()) + run_command("reset", 0); + return CMD_RET_SUCCESS; } |