MdeMdeModulePkg/Xhci: Clear BIOS_OWN semaphore before halting XHCI controller

Signed-off-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Steven Shi <steven.shi@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14339 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
erictian 2013-05-10 05:23:39 +00:00
parent 70eca31be1
commit 11249a7339
1 changed files with 4 additions and 4 deletions

View File

@ -932,9 +932,9 @@ XhcControlTransfer (
} }
Xhc->UsbDevContext[SlotId].ConfDesc = AllocateZeroPool (Xhc->UsbDevContext[SlotId].DevDesc.NumConfigurations * sizeof (EFI_USB_CONFIG_DESCRIPTOR *)); Xhc->UsbDevContext[SlotId].ConfDesc = AllocateZeroPool (Xhc->UsbDevContext[SlotId].DevDesc.NumConfigurations * sizeof (EFI_USB_CONFIG_DESCRIPTOR *));
if (Xhc->HcCParams.Data.Csz == 0) { if (Xhc->HcCParams.Data.Csz == 0) {
Status = XhcEvaluateContext (Xhc, SlotId, MaxPacket0); Status = XhcEvaluateContext (Xhc, SlotId, MaxPacket0);
} else { } else {
Status = XhcEvaluateContext64 (Xhc, SlotId, MaxPacket0); Status = XhcEvaluateContext64 (Xhc, SlotId, MaxPacket0);
} }
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} else if (DescriptorType == USB_DESC_TYPE_CONFIG) { } else if (DescriptorType == USB_DESC_TYPE_CONFIG) {
@ -1802,6 +1802,8 @@ XhcExitBootService (
gBS->CloseEvent (Xhc->PollTimer); gBS->CloseEvent (Xhc->PollTimer);
} }
XhcClearBiosOwnership (Xhc);
// //
// Restore original PCI attributes // Restore original PCI attributes
// //
@ -1811,8 +1813,6 @@ XhcExitBootService (
Xhc->OriginalPciAttributes, Xhc->OriginalPciAttributes,
NULL NULL
); );
XhcClearBiosOwnership (Xhc);
} }
/** /**