Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reset USB port during enumeration if GetPortStatus returns device err…
…or (#101) During USB device enumeration, issuing a hot reset on a port is skipped if there is a reset change status already detected on the port. This can happen when enumerating devices after a host controller soft reset (which drives a hot reset down the ports). However, in certain cases an attached device may not be responsive even if the reset change and connection status bits are set. For e.g., according to xHCI spec section 4.19.5.1 the port reset change bits can be set when a hot reset driven on the port transitions to a warm reset and completes with errors. For such instances it is worthwhile to force a hot reset during enumeration to try and recover unresponsive devices. During enumeration check whether querying port status returns EFI_DEVICE_ERROR and try a port reset if there is a device attached to the port. Co-authored-by: Alok Kulkarni <akulkarni@microsoft.com>
- Loading branch information