]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - drivers/usb/gadget/f_mass_storage.c
usb: f_mass_storage: sleep_thread: retrigger watchdog
[karo-tx-uboot.git] / drivers / usb / gadget / f_mass_storage.c
index e045957d07238862f23c80cd7e90845ae14e8447..f30b4f812e6d4b8495e8b08fc0c59bb84e9ce851 100644 (file)
 #include <malloc.h>
 #include <common.h>
 #include <g_dnl.h>
+#include <watchdog.h>
 
 #include <linux/err.h>
 #include <linux/usb/ch9.h>
@@ -671,7 +672,7 @@ static int sleep_thread(struct fsg_common *common)
                if (common->thread_wakeup_needed)
                        break;
 
-               if (++i == 50000) {
+               if (++i == 20000) {
                        busy_indicator();
                        i = 0;
                        k++;
@@ -682,6 +683,8 @@ static int sleep_thread(struct fsg_common *common)
                        if (ctrlc())
                                return -EPIPE;
 
+                       WATCHDOG_RESET();
+
                        /* Check cable connection */
                        if (!g_dnl_board_usb_cable_connected())
                                return -EIO;
@@ -689,7 +692,7 @@ static int sleep_thread(struct fsg_common *common)
                        k = 0;
                }
 
-               usb_gadget_handle_interrupts();
+               usb_gadget_handle_interrupts(0);
        }
        common->thread_wakeup_needed = 0;
        return rc;
@@ -973,7 +976,7 @@ static int do_write(struct fsg_common *common)
 
                        /* If an error occurred, report it and its position */
                        if (nwritten < amount) {
-                               printf("nwritten:%d amount:%d\n", nwritten,
+                               printf("nwritten:%zd amount:%u\n", nwritten,
                                       amount);
                                curlun->sense_data = SS_WRITE_ERROR;
                                curlun->info_valid = 1;