]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c
MdeModulePkg/Xhci: make all timeout values be consistent with comments.
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / XhciPei / XhciSched.c
index 14a5c0ec832fd1941803b10af9d57e1a3bd78854..eedf3779be6116cb81a224b41a123e4427991858 100644 (file)
@@ -553,7 +553,7 @@ XhcPeiIsTransferRingTrb (
   @return Whether the result of URB transfer is finialized.\r
 \r
 **/\r
-EFI_STATUS\r
+BOOLEAN\r
 XhcPeiCheckUrbResult (\r
   IN PEI_XHC_DEV            *Xhc,\r
   IN URB                    *Urb\r
@@ -582,7 +582,6 @@ XhcPeiCheckUrbResult (
 \r
   if (XhcPeiIsHalt (Xhc) || XhcPeiIsSysError (Xhc)) {\r
     Urb->Result |= EFI_USB_ERR_SYSTEM;\r
-    Status       = EFI_DEVICE_ERROR;\r
     goto EXIT;\r
   }\r
 \r
@@ -711,7 +710,7 @@ EXIT:
     XhcPeiWriteRuntimeReg (Xhc, XHC_ERDP_OFFSET + 4, XHC_HIGH_32BIT (PhyAddr));\r
   }\r
 \r
-  return Status;\r
+  return Urb->Finished;\r
 }\r
 \r
 /**\r
@@ -737,9 +736,10 @@ XhcPeiExecTransfer (
 {\r
   EFI_STATUS    Status;\r
   UINTN         Index;\r
-  UINT        Loop;\r
+  UINT64        Loop;\r
   UINT8         SlotId;\r
   UINT8         Dci;\r
+  BOOLEAN       Finished;\r
 \r
   if (CmdTransfer) {\r
     SlotId = 0;\r
@@ -761,8 +761,8 @@ XhcPeiExecTransfer (
   XhcPeiRingDoorBell (Xhc, SlotId, Dci);\r
 \r
   for (Index = 0; Index < Loop; Index++) {\r
-    Status = XhcPeiCheckUrbResult (Xhc, Urb);\r
-    if (Urb->Finished) {\r
+    Finished = XhcPeiCheckUrbResult (Xhc, Urb);\r
+    if (Finished) {\r
       break;\r
     }\r
     MicroSecondDelay (XHC_1_MICROSECOND);\r
@@ -770,6 +770,9 @@ XhcPeiExecTransfer (
 \r
   if (Index == Loop) {\r
     Urb->Result = EFI_USB_ERR_TIMEOUT;\r
+    Status      = EFI_TIMEOUT;\r
+  } else if (Urb->Result != EFI_USB_NOERROR) {\r
+    Status      = EFI_DEVICE_ERROR;\r
   }\r
 \r
   return Status;\r