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>
This commit is contained in:
Andy Shevchenko 2020-01-29 17:23:14 +02:00 committed by Marek Vasut
parent 9e1d65f36b
commit 53d9bd4a56

View File

@ -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) {