]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_dfu.c
Merge branch 'tx6-bugfix'
[karo-tx-uboot.git] / common / cmd_dfu.c
index 9e020b40be8a853e5e9bfd6a1dfbcd36100ae5b0..857148f8afef2562098358bc6615506d14716fc3 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include <common.h>
+#include <watchdog.h>
 #include <dfu.h>
 #include <g_dnl.h>
 #include <usb.h>
@@ -38,10 +39,10 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        int controller_index = simple_strtoul(usb_controller, NULL, 0);
        board_usb_init(controller_index, USB_INIT_DEVICE);
-       dfu_clear_detach();
+       g_dnl_clear_detach();
        g_dnl_register("usb_dnl_dfu");
        while (1) {
-               if (dfu_detach()) {
+               if (g_dnl_detach()) {
                        /*
                         * Check if USB bus reset is performed after detach,
                         * which indicates that -R switch has been passed to
@@ -64,17 +65,19 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                if (ctrlc())
                        goto exit;
 
-               usb_gadget_handle_interrupts();
+               WATCHDOG_RESET();
+               usb_gadget_handle_interrupts(controller_index);
        }
 exit:
        g_dnl_unregister();
+       board_usb_cleanup(controller_index, USB_INIT_DEVICE);
 done:
        dfu_free_entities();
 
        if (dfu_reset)
                run_command("reset", 0);
 
-       dfu_clear_detach();
+       g_dnl_clear_detach();
 
        return ret;
 }