]> git.proxmox.com Git - mirror_edk2.git/commit - MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c
MdeModulePkg/XhciDxe: Error handle for USB slot initialization failure
authorLuo, Heng <heng.luo@intel.com>
Fri, 23 Oct 2020 01:26:11 +0000 (09:26 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 27 Oct 2020 01:09:28 +0000 (01:09 +0000)
commita3212009d95bbcba7d08076aba2eee51eb1f8e7c
treeff2e58a417d4bbbcbf38c44e61e86bc549e0b5c7
parentb70c4fdcde83689d8cd1e5e2faf598d0087934a3
MdeModulePkg/XhciDxe: Error handle for USB slot initialization failure

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3007

Currently UsbDevContext is not cleaned up if USB slot initialization is
failed, the wrong context data will affect next USB devices and
the USB devices can not be enumerated.
Need to disable slot if USB slot initialization is failed.

Below test cases are passed on UpXtreme:
a. USB 3.0 thumb drives can be recognized in UEFI shell
b. SUT can boot to Puppylinux  from USB3.0 mass storage,
 the storage can be recognized in linux
c. Plug in a USB  keyboard (hot plug) and enumeration is OK
 in UEFI shell and linux
d. Plug in a USB mouse(hot plug) and enumeration is OK in linux.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Signed-off-by: Heng Luo <heng.luo@intel.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c