aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2020-01-29 17:23:14 +0200
committerMarek Vasut <marek.vasut+renesas@gmail.com>2020-03-01 21:58:54 +0100
commit53d9bd4a568d6d187c894ce539ad2595023dfc2b (patch)
tree8f82a7f746248dae74591e38bf0e7d0348d736b1 /drivers/usb
parent9e1d65f36b83c5422ece3c0ea28d07a2246cb07f (diff)
downloadu-boot-53d9bd4a568d6d187c894ce539ad2595023dfc2b.zip
u-boot-53d9bd4a568d6d187c894ce539ad2595023dfc2b.tar.gz
u-boot-53d9bd4a568d6d187c894ce539ad2595023dfc2b.tar.bz2
dfu: Reset timeout in case of DFU request
In case dfu command is being executed with timeout option, the timer may expire in the middle of DFU operation. If there is DFU request coming, we may simple reset timeout value to prevent aborting of ongoing DFU operation. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Tested-by: Ferry Toth <ftoth@exalondelft.nl>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/f_dfu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index 6756155..a4a57ba 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -596,6 +596,11 @@ dfu_handle(struct usb_function *f, const struct usb_ctrlrequest *ctrl)
debug("req_type: 0x%x ctrl->bRequest: 0x%x f_dfu->dfu_state: 0x%x\n",
req_type, ctrl->bRequest, f_dfu->dfu_state);
+#ifdef CONFIG_DFU_TIMEOUT
+ /* Forbid aborting by timeout. Next dfu command may update this */
+ dfu_set_timeout(0);
+#endif
+
if (req_type == USB_TYPE_STANDARD) {
if (ctrl->bRequest == USB_REQ_GET_DESCRIPTOR &&
(w_value >> 8) == DFU_DT_FUNC) {