Try a port reset if GetPortStatus returns and error. Cc: Hao A Wu <hao.a...@intel.com> Cc: Ray Ni <ray...@intel.com> Signed-off-by: Sean Rhodes <sean@starlabs.systems> --- MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c index 7fc567898a..13112be2a5 100644 --- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c +++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c @@ -992,7 +992,9 @@ UsbEnumeratePort ( // Now, new device connected, enumerate and configure the device // DEBUG ((DEBUG_INFO, "UsbEnumeratePort: new device connected at port %d\n", Port)); - if (USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_RESET)) { + if (USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_RESET) && + (Status != EFI_DEVICE_ERROR)) + { Status = UsbEnumerateNewDev (HubIf, Port, FALSE); } else { Status = UsbEnumerateNewDev (HubIf, Port, TRUE); -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#93990): https://edk2.groups.io/g/devel/message/93990 Mute This Topic: https://groups.io/mt/93802899/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-