]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/EhciPei/EhciUrb.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / EhciPei / EhciUrb.c
index a766f70a9dda74bf51e686c237540a1258f752c8..1ad7f3a56a19321ec17f5c6a50ca51a0bce1f8c3 100644 (file)
@@ -3,15 +3,9 @@ PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid
 which is used to enable recovery function from USB Drivers.\r
 \r
 Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) Microsoft Corporation.<BR>\r
 \r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions\r
-of the BSD License which accompanies this distribution.  The\r
-full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -33,19 +27,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 PEI_EHC_QTD *\r
 EhcCreateQtd (\r
-  IN PEI_USB2_HC_DEV      *Ehc,\r
-  IN UINT8                *Data,\r
-  IN UINTN                DataLen,\r
-  IN UINT8                PktId,\r
-  IN UINT8                Toggle,\r
-  IN UINTN                MaxPacket\r
+  IN PEI_USB2_HC_DEV  *Ehc,\r
+  IN UINT8            *Data,\r
+  IN UINTN            DataLen,\r
+  IN UINT8            PktId,\r
+  IN UINT8            Toggle,\r
+  IN UINTN            MaxPacket\r
   )\r
 {\r
-  PEI_EHC_QTD             *Qtd;\r
-  QTD_HW                  *QtdHw;\r
-  UINTN                   Index;\r
-  UINTN                   Len;\r
-  UINTN                   ThisBufLen;\r
+  PEI_EHC_QTD  *Qtd;\r
+  QTD_HW       *QtdHw;\r
+  UINTN        Index;\r
+  UINTN        Len;\r
+  UINTN        ThisBufLen;\r
 \r
   ASSERT (Ehc != NULL);\r
 \r
@@ -55,9 +49,9 @@ EhcCreateQtd (
     return NULL;\r
   }\r
 \r
-  Qtd->Signature    = EHC_QTD_SIG;\r
-  Qtd->Data         = Data;\r
-  Qtd->DataLen      = 0;\r
+  Qtd->Signature = EHC_QTD_SIG;\r
+  Qtd->Data      = Data;\r
+  Qtd->DataLen   = 0;\r
 \r
   InitializeListHead (&Qtd->QtdList);\r
 \r
@@ -83,17 +77,17 @@ EhcCreateQtd (
       // compute the offset and clear Reserved fields. This is already\r
       // done in the data point.\r
       //\r
-      QtdHw->Page[Index]      = EHC_LOW_32BIT (Data);\r
-      QtdHw->PageHigh[Index]  = EHC_HIGH_32BIT (Data);\r
+      QtdHw->Page[Index]     = EHC_LOW_32BIT (Data);\r
+      QtdHw->PageHigh[Index] = EHC_HIGH_32BIT (Data);\r
 \r
-      ThisBufLen              = QTD_BUF_LEN - (EHC_LOW_32BIT (Data) & QTD_BUF_MASK);\r
+      ThisBufLen = QTD_BUF_LEN - (EHC_LOW_32BIT (Data) & QTD_BUF_MASK);\r
 \r
       if (Len + ThisBufLen >= DataLen) {\r
         Len = DataLen;\r
         break;\r
       }\r
 \r
-      Len += ThisBufLen;\r
+      Len  += ThisBufLen;\r
       Data += ThisBufLen;\r
     }\r
 \r
@@ -107,7 +101,7 @@ EhcCreateQtd (
       Len = Len - Len % MaxPacket;\r
     }\r
 \r
-    QtdHw->TotalBytes = (UINT32) Len;\r
+    QtdHw->TotalBytes = (UINT32)Len;\r
     Qtd->DataLen      = Len;\r
   }\r
 \r
@@ -127,8 +121,8 @@ EhcCreateQtd (
 **/\r
 VOID\r
 EhcInitIntQh (\r
-  IN USB_ENDPOINT         *Ep,\r
-  IN QH_HW                *QhHw\r
+  IN USB_ENDPOINT  *Ep,\r
+  IN QH_HW         *QhHw\r
   )\r
 {\r
   //\r
@@ -140,7 +134,7 @@ EhcInitIntQh (
   //\r
   if (Ep->DevSpeed == EFI_USB_SPEED_HIGH) {\r
     QhHw->SMask = QH_MICROFRAME_0;\r
-    return ;\r
+    return;\r
   }\r
 \r
   //\r
@@ -169,12 +163,12 @@ EhcInitIntQh (
 **/\r
 PEI_EHC_QH *\r
 EhcCreateQh (\r
-  IN PEI_USB2_HC_DEV      *Ehci,\r
-  IN USB_ENDPOINT         *Ep\r
+  IN PEI_USB2_HC_DEV  *Ehci,\r
+  IN USB_ENDPOINT     *Ep\r
   )\r
 {\r
-  PEI_EHC_QH              *Qh;\r
-  QH_HW                   *QhHw;\r
+  PEI_EHC_QH  *Qh;\r
+  QH_HW       *QhHw;\r
 \r
   Qh = UsbHcAllocateMem (Ehci, Ehci->MemPool, sizeof (PEI_EHC_QH));\r
 \r
@@ -182,62 +176,63 @@ EhcCreateQh (
     return NULL;\r
   }\r
 \r
-  Qh->Signature       = EHC_QH_SIG;\r
-  Qh->NextQh          = NULL;\r
-  Qh->Interval        = Ep->PollRate;\r
+  Qh->Signature = EHC_QH_SIG;\r
+  Qh->NextQh    = NULL;\r
+  Qh->Interval  = Ep->PollRate;\r
 \r
   InitializeListHead (&Qh->Qtds);\r
 \r
-  QhHw                = &Qh->QhHw;\r
-  QhHw->HorizonLink   = QH_LINK (NULL, 0, TRUE);\r
-  QhHw->DeviceAddr    = Ep->DevAddr;\r
-  QhHw->Inactive      = 0;\r
-  QhHw->EpNum         = Ep->EpAddr;\r
-  QhHw->EpSpeed       = Ep->DevSpeed;\r
-  QhHw->DtCtrl        = 0;\r
-  QhHw->ReclaimHead   = 0;\r
-  QhHw->MaxPacketLen  = (UINT32) Ep->MaxPacket;\r
-  QhHw->CtrlEp        = 0;\r
-  QhHw->NakReload     = QH_NAK_RELOAD;\r
-  QhHw->HubAddr       = Ep->HubAddr;\r
-  QhHw->PortNum       = Ep->HubPort;\r
-  QhHw->Multiplier    = 1;\r
-  QhHw->DataToggle    = Ep->Toggle;\r
+  QhHw               = &Qh->QhHw;\r
+  QhHw->HorizonLink  = QH_LINK (NULL, 0, TRUE);\r
+  QhHw->DeviceAddr   = Ep->DevAddr;\r
+  QhHw->Inactive     = 0;\r
+  QhHw->EpNum        = Ep->EpAddr;\r
+  QhHw->EpSpeed      = Ep->DevSpeed;\r
+  QhHw->DtCtrl       = 0;\r
+  QhHw->ReclaimHead  = 0;\r
+  QhHw->MaxPacketLen = (UINT32)Ep->MaxPacket;\r
+  QhHw->CtrlEp       = 0;\r
+  QhHw->NakReload    = QH_NAK_RELOAD;\r
+  QhHw->HubAddr      = Ep->HubAddr;\r
+  QhHw->PortNum      = Ep->HubPort;\r
+  QhHw->Multiplier   = 1;\r
+  QhHw->DataToggle   = Ep->Toggle;\r
 \r
   if (Ep->DevSpeed != EFI_USB_SPEED_HIGH) {\r
     QhHw->Status |= QTD_STAT_DO_SS;\r
   }\r
 \r
   switch (Ep->Type) {\r
-  case EHC_CTRL_TRANSFER:\r
-    //\r
-    // Special initialization for the control transfer:\r
-    // 1. Control transfer initialize data toggle from each QTD\r
-    // 2. Set the Control Endpoint Flag (C) for low/full speed endpoint.\r
-    //\r
-    QhHw->DtCtrl = 1;\r
+    case EHC_CTRL_TRANSFER:\r
+      //\r
+      // Special initialization for the control transfer:\r
+      // 1. Control transfer initialize data toggle from each QTD\r
+      // 2. Set the Control Endpoint Flag (C) for low/full speed endpoint.\r
+      //\r
+      QhHw->DtCtrl = 1;\r
 \r
-    if (Ep->DevSpeed != EFI_USB_SPEED_HIGH) {\r
-      QhHw->CtrlEp = 1;\r
-    }\r
-    break;\r
+      if (Ep->DevSpeed != EFI_USB_SPEED_HIGH) {\r
+        QhHw->CtrlEp = 1;\r
+      }\r
 \r
-  case EHC_INT_TRANSFER_ASYNC:\r
-  case EHC_INT_TRANSFER_SYNC:\r
-    //\r
-    // Special initialization for the interrupt transfer\r
-    // to set the S-Mask and C-Mask\r
-    //\r
-    QhHw->NakReload = 0;\r
-    EhcInitIntQh (Ep, QhHw);\r
-    break;\r
+      break;\r
 \r
-  case EHC_BULK_TRANSFER:\r
-    if ((Ep->DevSpeed == EFI_USB_SPEED_HIGH) && (Ep->Direction == EfiUsbDataOut)) {\r
-      QhHw->Status |= QTD_STAT_DO_PING;\r
-    }\r
+    case EHC_INT_TRANSFER_ASYNC:\r
+    case EHC_INT_TRANSFER_SYNC:\r
+      //\r
+      // Special initialization for the interrupt transfer\r
+      // to set the S-Mask and C-Mask\r
+      //\r
+      QhHw->NakReload = 0;\r
+      EhcInitIntQh (Ep, QhHw);\r
+      break;\r
+\r
+    case EHC_BULK_TRANSFER:\r
+      if ((Ep->DevSpeed == EFI_USB_SPEED_HIGH) && (Ep->Direction == EfiUsbDataOut)) {\r
+        QhHw->Status |= QTD_STAT_DO_PING;\r
+      }\r
 \r
-    break;\r
+      break;\r
   }\r
 \r
   return Qh;\r
@@ -258,10 +253,10 @@ EhcCreateQh (
 **/\r
 UINTN\r
 EhcConvertPollRate (\r
-  IN  UINTN               Interval\r
+  IN  UINTN  Interval\r
   )\r
 {\r
-  UINTN                   BitCount;\r
+  UINTN  BitCount;\r
 \r
   if (Interval == 0) {\r
     return 1;\r
@@ -289,15 +284,15 @@ EhcConvertPollRate (
 **/\r
 VOID\r
 EhcFreeQtds (\r
-  IN PEI_USB2_HC_DEV      *Ehc,\r
-  IN EFI_LIST_ENTRY       *Qtds\r
+  IN PEI_USB2_HC_DEV  *Ehc,\r
+  IN EFI_LIST_ENTRY   *Qtds\r
   )\r
 {\r
-  EFI_LIST_ENTRY          *Entry;\r
-  EFI_LIST_ENTRY          *Next;\r
-  PEI_EHC_QTD             *Qtd;\r
+  EFI_LIST_ENTRY  *Entry;\r
+  EFI_LIST_ENTRY  *Next;\r
+  PEI_EHC_QTD     *Qtd;\r
 \r
-  EFI_LIST_FOR_EACH_SAFE (Entry, Next, Qtds) {\r
+  BASE_LIST_FOR_EACH_SAFE (Entry, Next, Qtds) {\r
     Qtd = EFI_LIST_CONTAINER (Entry, PEI_EHC_QTD, QtdList);\r
 \r
     RemoveEntryList (&Qtd->QtdList);\r
@@ -314,8 +309,8 @@ EhcFreeQtds (
 **/\r
 VOID\r
 EhcFreeUrb (\r
-  IN PEI_USB2_HC_DEV      *Ehc,\r
-  IN PEI_URB              *Urb\r
+  IN PEI_USB2_HC_DEV  *Ehc,\r
+  IN PEI_URB          *Urb\r
   )\r
 {\r
   if (Urb->RequestPhy != NULL) {\r
@@ -348,20 +343,20 @@ EhcFreeUrb (
 **/\r
 EFI_STATUS\r
 EhcCreateQtds (\r
-  IN PEI_USB2_HC_DEV      *Ehc,\r
-  IN PEI_URB              *Urb\r
+  IN PEI_USB2_HC_DEV  *Ehc,\r
+  IN PEI_URB          *Urb\r
   )\r
 {\r
-  USB_ENDPOINT            *Ep;\r
-  PEI_EHC_QH              *Qh;\r
-  PEI_EHC_QTD             *Qtd;\r
-  PEI_EHC_QTD             *StatusQtd;\r
-  PEI_EHC_QTD             *NextQtd;\r
-  EFI_LIST_ENTRY          *Entry;\r
-  UINT32                  AlterNext;\r
-  UINT8                   Toggle;\r
-  UINTN                   Len;\r
-  UINT8                   Pid;\r
+  USB_ENDPOINT    *Ep;\r
+  PEI_EHC_QH      *Qh;\r
+  PEI_EHC_QTD     *Qtd;\r
+  PEI_EHC_QTD     *StatusQtd;\r
+  PEI_EHC_QTD     *NextQtd;\r
+  EFI_LIST_ENTRY  *Entry;\r
+  UINT32          AlterNext;\r
+  UINT8           Toggle;\r
+  UINTN           Len;\r
+  UINT8           Pid;\r
 \r
   ASSERT ((Urb != NULL) && (Urb->Qh != NULL));\r
 \r
@@ -434,7 +429,7 @@ EhcCreateQtds (
   while (Len < Urb->DataLen) {\r
     Qtd = EhcCreateQtd (\r
             Ehc,\r
-            (UINT8 *) Urb->DataPhy + Len,\r
+            (UINT8 *)Urb->DataPhy + Len,\r
             Urb->DataLen - Len,\r
             Pid,\r
             Toggle,\r
@@ -452,7 +447,7 @@ EhcCreateQtds (
     // Switch the Toggle bit if odd number of packets are included in the QTD.\r
     //\r
     if (((Qtd->DataLen + Ep->MaxPacket - 1) / Ep->MaxPacket) % 2) {\r
-      Toggle = (UINT8) (1 - Toggle);\r
+      Toggle = (UINT8)(1 - Toggle);\r
     }\r
 \r
     Len += Qtd->DataLen;\r
@@ -468,7 +463,7 @@ EhcCreateQtds (
   //\r
   // OK, all the QTDs needed are created. Now, fix the NextQtd point\r
   //\r
-  EFI_LIST_FOR_EACH (Entry, &Qh->Qtds) {\r
+  BASE_LIST_FOR_EACH (Entry, &Qh->Qtds) {\r
     Qtd = EFI_LIST_CONTAINER (Entry, PEI_EHC_QTD, QtdList);\r
 \r
     //\r
@@ -478,15 +473,15 @@ EhcCreateQtds (
       break;\r
     }\r
 \r
-    NextQtd             = EFI_LIST_CONTAINER (Entry->ForwardLink, PEI_EHC_QTD, QtdList);\r
-    Qtd->QtdHw.NextQtd  = QTD_LINK (NextQtd, FALSE);\r
+    NextQtd            = EFI_LIST_CONTAINER (Entry->ForwardLink, PEI_EHC_QTD, QtdList);\r
+    Qtd->QtdHw.NextQtd = QTD_LINK (NextQtd, FALSE);\r
   }\r
 \r
   //\r
   // Link the QTDs to the queue head\r
   //\r
-  NextQtd           = EFI_LIST_CONTAINER (Qh->Qtds.ForwardLink, PEI_EHC_QTD, QtdList);\r
-  Qh->QhHw.NextQtd  = QTD_LINK (NextQtd, FALSE);\r
+  NextQtd          = EFI_LIST_CONTAINER (Qh->Qtds.ForwardLink, PEI_EHC_QTD, QtdList);\r
+  Qh->QhHw.NextQtd = QTD_LINK (NextQtd, FALSE);\r
   return EFI_SUCCESS;\r
 \r
 ON_ERROR:\r
@@ -517,61 +512,63 @@ ON_ERROR:
 **/\r
 PEI_URB *\r
 EhcCreateUrb (\r
-  IN PEI_USB2_HC_DEV                    *Ehc,\r
-  IN UINT8                              DevAddr,\r
-  IN UINT8                              EpAddr,\r
-  IN UINT8                              DevSpeed,\r
-  IN UINT8                              Toggle,\r
-  IN UINTN                              MaxPacket,\r
-  IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Hub,\r
-  IN UINTN                              Type,\r
-  IN EFI_USB_DEVICE_REQUEST             *Request,\r
-  IN VOID                               *Data,\r
-  IN UINTN                              DataLen,\r
-  IN EFI_ASYNC_USB_TRANSFER_CALLBACK    Callback,\r
-  IN VOID                               *Context,\r
-  IN UINTN                              Interval\r
+  IN PEI_USB2_HC_DEV                     *Ehc,\r
+  IN UINT8                               DevAddr,\r
+  IN UINT8                               EpAddr,\r
+  IN UINT8                               DevSpeed,\r
+  IN UINT8                               Toggle,\r
+  IN UINTN                               MaxPacket,\r
+  IN EFI_USB2_HC_TRANSACTION_TRANSLATOR  *Hub,\r
+  IN UINTN                               Type,\r
+  IN EFI_USB_DEVICE_REQUEST              *Request,\r
+  IN VOID                                *Data,\r
+  IN UINTN                               DataLen,\r
+  IN EFI_ASYNC_USB_TRANSFER_CALLBACK     Callback,\r
+  IN VOID                                *Context,\r
+  IN UINTN                               Interval\r
   )\r
 {\r
-  USB_ENDPOINT                  *Ep;\r
-  EFI_PHYSICAL_ADDRESS          PhyAddr;\r
-  EDKII_IOMMU_OPERATION         MapOp;\r
-  EFI_STATUS                    Status;\r
-  UINTN                         Len;\r
-  PEI_URB                       *Urb;\r
-  VOID                          *Map;\r
-\r
-  Urb = Ehc->Urb;\r
-  Urb->Signature  = EHC_URB_SIG;\r
+  USB_ENDPOINT           *Ep;\r
+  EFI_PHYSICAL_ADDRESS   PhyAddr;\r
+  EDKII_IOMMU_OPERATION  MapOp;\r
+  EFI_STATUS             Status;\r
+  UINTN                  Len;\r
+  PEI_URB                *Urb;\r
+  VOID                   *Map;\r
+\r
+  Map = NULL;\r
+\r
+  Urb            = Ehc->Urb;\r
+  Urb->Signature = EHC_URB_SIG;\r
   InitializeListHead (&Urb->UrbList);\r
 \r
-  Ep              = &Urb->Ep;\r
-  Ep->DevAddr     = DevAddr;\r
-  Ep->EpAddr      = (UINT8) (EpAddr & 0x0F);\r
-  Ep->Direction   = (((EpAddr & 0x80) != 0) ? EfiUsbDataIn : EfiUsbDataOut);\r
-  Ep->DevSpeed    = DevSpeed;\r
-  Ep->MaxPacket   = MaxPacket;\r
+  Ep            = &Urb->Ep;\r
+  Ep->DevAddr   = DevAddr;\r
+  Ep->EpAddr    = (UINT8)(EpAddr & 0x0F);\r
+  Ep->Direction = (((EpAddr & 0x80) != 0) ? EfiUsbDataIn : EfiUsbDataOut);\r
+  Ep->DevSpeed  = DevSpeed;\r
+  Ep->MaxPacket = MaxPacket;\r
 \r
-  Ep->HubAddr     = 0;\r
-  Ep->HubPort     = 0;\r
+  Ep->HubAddr = 0;\r
+  Ep->HubPort = 0;\r
 \r
   if (DevSpeed != EFI_USB_SPEED_HIGH) {\r
     ASSERT (Hub != NULL);\r
 \r
-    Ep->HubAddr   = Hub->TranslatorHubAddress;\r
-    Ep->HubPort   = Hub->TranslatorPortNumber;\r
+    Ep->HubAddr = Hub->TranslatorHubAddress;\r
+    Ep->HubPort = Hub->TranslatorPortNumber;\r
   }\r
 \r
-  Ep->Toggle      = Toggle;\r
-  Ep->Type        = Type;\r
-  Ep->PollRate    = EhcConvertPollRate (Interval);\r
+  Ep->Toggle   = Toggle;\r
+  Ep->Type     = Type;\r
+  Ep->PollRate = EhcConvertPollRate (Interval);\r
 \r
-  Urb->Request    = Request;\r
-  Urb->Data       = Data;\r
-  Urb->DataLen    = DataLen;\r
-  Urb->Callback   = Callback;\r
-  Urb->Context    = Context;\r
-  Urb->Qh         = EhcCreateQh (Ehc, &Urb->Ep);\r
+  Urb->Request  = Request;\r
+  Urb->Data     = Data;\r
+  Urb->DataLen  = DataLen;\r
+  Urb->Callback = Callback;\r
+  Urb->Context  = Context;\r
+  Urb->Qh       = EhcCreateQh (Ehc, &Urb->Ep);\r
 \r
   if (Urb->Qh == NULL) {\r
     goto ON_ERROR;\r
@@ -579,27 +576,27 @@ EhcCreateUrb (
 \r
   Urb->RequestPhy = NULL;\r
   Urb->RequestMap = NULL;\r
-  Urb->DataPhy  = NULL;\r
-  Urb->DataMap  = NULL;\r
+  Urb->DataPhy    = NULL;\r
+  Urb->DataMap    = NULL;\r
 \r
   //\r
   // Map the request and user data\r
   //\r
   if (Request != NULL) {\r
-    Len     = sizeof (EFI_USB_DEVICE_REQUEST);\r
-    MapOp   = EdkiiIoMmuOperationBusMasterRead;\r
-    Status  = IoMmuMap (Ehc->IoMmu, MapOp, Request, &Len, &PhyAddr, &Map);\r
+    Len    = sizeof (EFI_USB_DEVICE_REQUEST);\r
+    MapOp  = EdkiiIoMmuOperationBusMasterRead;\r
+    Status = IoMmuMap (Ehc->IoMmu, MapOp, Request, &Len, &PhyAddr, &Map);\r
 \r
     if (EFI_ERROR (Status) || (Len != sizeof (EFI_USB_DEVICE_REQUEST))) {\r
       goto ON_ERROR;\r
     }\r
 \r
-    Urb->RequestPhy = (VOID *) ((UINTN) PhyAddr);\r
+    Urb->RequestPhy = (VOID *)((UINTN)PhyAddr);\r
     Urb->RequestMap = Map;\r
   }\r
 \r
   if (Data != NULL) {\r
-    Len      = DataLen;\r
+    Len = DataLen;\r
 \r
     if (Ep->Direction == EfiUsbDataIn) {\r
       MapOp = EdkiiIoMmuOperationBusMasterWrite;\r
@@ -607,14 +604,14 @@ EhcCreateUrb (
       MapOp = EdkiiIoMmuOperationBusMasterRead;\r
     }\r
 \r
-    Status  = IoMmuMap (Ehc->IoMmu, MapOp, Data, &Len, &PhyAddr, &Map);\r
+    Status = IoMmuMap (Ehc->IoMmu, MapOp, Data, &Len, &PhyAddr, &Map);\r
 \r
     if (EFI_ERROR (Status) || (Len != DataLen)) {\r
       goto ON_ERROR;\r
     }\r
 \r
-    Urb->DataPhy  = (VOID *) ((UINTN) PhyAddr);\r
-    Urb->DataMap  = Map;\r
+    Urb->DataPhy = (VOID *)((UINTN)PhyAddr);\r
+    Urb->DataMap = Map;\r
   }\r
 \r
   Status = EhcCreateQtds (Ehc, Urb);\r