Merge branch 'fix/hub_error_handling' into 'release/v5.1'

fix(usb/host): Fix disconnection error handling

See merge request espressif/esp-idf!37228
This commit is contained in:
morris 2025-02-26 10:43:11 +08:00
commit 6df6ab7d2b

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -826,6 +826,13 @@ reset_err:
// There is an enabled (active) device. We need to indicate to USBH that the device is gone
pass_event_to_usbh = true;
break;
case ROOT_PORT_STATE_RECOVERY:
// In a very rare case of having 2 or more events of type DISCONNECTION/ERROR/OVERCURRENT
// in a short time, we can endup here, where the driver has not yet recovered from
// the 1st error but already got a 2nd error.
// Just check that the RECOVER action is requested and return
assert(p_hub_driver_obj->dynamic.port_reqs | PORT_REQ_RECOVER);
break;
default:
abort(); // Should never occur
break;