]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
MdeModulePkg XhciDxe: Assign Usb2Hc.XXXRevision based on SBRN
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / XhciDxe / Xhci.c
index 48eccf770a35f9be5092faf11f3a2968a04230ae..4796d4611b19ed7fdd6ec63d147bddd692c240b8 100644 (file)
@@ -1770,6 +1770,7 @@ XhcCreateUsbHc (
   EFI_STATUS              Status;\r
   UINT32                  PageSize;\r
   UINT16                  ExtCapReg;\r
+  UINT8                   ReleaseNumber;\r
 \r
   Xhc = AllocateZeroPool (sizeof (USB_XHCI_INSTANCE));\r
 \r
@@ -1786,6 +1787,19 @@ XhcCreateUsbHc (
   Xhc->OriginalPciAttributes = OriginalPciAttributes;\r
   CopyMem (&Xhc->Usb2Hc, &gXhciUsb2HcTemplate, sizeof (EFI_USB2_HC_PROTOCOL));\r
 \r
+  Status = PciIo->Pci.Read (\r
+                        PciIo,\r
+                        EfiPciIoWidthUint8,\r
+                        XHC_PCI_SBRN_OFFSET,\r
+                        1,\r
+                        &ReleaseNumber\r
+                        );\r
+\r
+  if (!EFI_ERROR (Status)) {\r
+    Xhc->Usb2Hc.MajorRevision = (ReleaseNumber & 0xF0) >> 4;\r
+    Xhc->Usb2Hc.MinorRevision = (ReleaseNumber & 0x0F);\r
+  }\r
+\r
   InitializeListHead (&Xhc->AsyncIntTransfers);\r
 \r
   //\r