summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c')
-rw-r--r--MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c1210
1 files changed, 608 insertions, 602 deletions
diff --git a/MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c b/MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c
index a05834da3c..96abf3ab13 100644
--- a/MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c
+++ b/MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c
@@ -22,15 +22,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
UhciStopHc (
- IN USB_UHC_DEV *Uhc,
- IN UINTN Timeout
+ IN USB_UHC_DEV *Uhc,
+ IN UINTN Timeout
)
{
- UINT16 CommandContent;
- UINT16 UsbSts;
- UINTN Index;
+ UINT16 CommandContent;
+ UINT16 UsbSts;
+ UINTN Index;
- CommandContent = USBReadPortW (Uhc, Uhc->UsbHostControllerBaseAddress + USBCMD);
+ CommandContent = USBReadPortW (Uhc, Uhc->UsbHostControllerBaseAddress + USBCMD);
CommandContent &= USBCMD_RS;
USBWritePortW (Uhc, Uhc->UsbHostControllerBaseAddress + USBCMD, CommandContent);
@@ -70,7 +70,7 @@ UhcEndOfPei (
IN VOID *Ppi
)
{
- USB_UHC_DEV *Uhc;
+ USB_UHC_DEV *Uhc;
Uhc = PEI_RECOVERY_USB_UHC_DEV_FROM_THIS_NOTIFY (NotifyDescriptor);
@@ -95,18 +95,18 @@ UhcEndOfPei (
EFI_STATUS
EFIAPI
UhcPeimEntry (
- IN EFI_PEI_FILE_HANDLE FileHandle,
- IN CONST EFI_PEI_SERVICES **PeiServices
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- PEI_USB_CONTROLLER_PPI *ChipSetUsbControllerPpi;
- EFI_STATUS Status;
- UINT8 Index;
- UINTN ControllerType;
- UINTN BaseAddress;
- UINTN MemPages;
- USB_UHC_DEV *UhcDev;
- EFI_PHYSICAL_ADDRESS TempPtr;
+ PEI_USB_CONTROLLER_PPI *ChipSetUsbControllerPpi;
+ EFI_STATUS Status;
+ UINT8 Index;
+ UINTN ControllerType;
+ UINTN BaseAddress;
+ UINTN MemPages;
+ USB_UHC_DEV *UhcDev;
+ EFI_PHYSICAL_ADDRESS TempPtr;
//
// Shadow this PEIM to run from memory
@@ -119,7 +119,7 @@ UhcPeimEntry (
&gPeiUsbControllerPpiGuid,
0,
NULL,
- (VOID **) &ChipSetUsbControllerPpi
+ (VOID **)&ChipSetUsbControllerPpi
);
//
// If failed to locate, it is a bug in dispather as depex has gPeiUsbControllerPpiGuid.
@@ -129,7 +129,7 @@ UhcPeimEntry (
Index = 0;
while (TRUE) {
Status = ChipSetUsbControllerPpi->GetUsbController (
- (EFI_PEI_SERVICES **) PeiServices,
+ (EFI_PEI_SERVICES **)PeiServices,
ChipSetUsbControllerPpi,
Index,
&ControllerType,
@@ -161,10 +161,10 @@ UhcPeimEntry (
return EFI_OUT_OF_RESOURCES;
}
- UhcDev = (USB_UHC_DEV *) ((UINTN) TempPtr);
- UhcDev->Signature = USB_UHC_DEV_SIGNATURE;
+ UhcDev = (USB_UHC_DEV *)((UINTN)TempPtr);
+ UhcDev->Signature = USB_UHC_DEV_SIGNATURE;
IoMmuInit (&UhcDev->IoMmu);
- UhcDev->UsbHostControllerBaseAddress = (UINT32) BaseAddress;
+ UhcDev->UsbHostControllerBaseAddress = (UINT32)BaseAddress;
//
// Init local memory management service
@@ -182,12 +182,12 @@ UhcPeimEntry (
return Status;
}
- UhcDev->UsbHostControllerPpi.ControlTransfer = UhcControlTransfer;
- UhcDev->UsbHostControllerPpi.BulkTransfer = UhcBulkTransfer;
- UhcDev->UsbHostControllerPpi.GetRootHubPortNumber = UhcGetRootHubPortNumber;
- UhcDev->UsbHostControllerPpi.GetRootHubPortStatus = UhcGetRootHubPortStatus;
- UhcDev->UsbHostControllerPpi.SetRootHubPortFeature = UhcSetRootHubPortFeature;
- UhcDev->UsbHostControllerPpi.ClearRootHubPortFeature = UhcClearRootHubPortFeature;
+ UhcDev->UsbHostControllerPpi.ControlTransfer = UhcControlTransfer;
+ UhcDev->UsbHostControllerPpi.BulkTransfer = UhcBulkTransfer;
+ UhcDev->UsbHostControllerPpi.GetRootHubPortNumber = UhcGetRootHubPortNumber;
+ UhcDev->UsbHostControllerPpi.GetRootHubPortStatus = UhcGetRootHubPortStatus;
+ UhcDev->UsbHostControllerPpi.SetRootHubPortFeature = UhcSetRootHubPortFeature;
+ UhcDev->UsbHostControllerPpi.ClearRootHubPortFeature = UhcClearRootHubPortFeature;
UhcDev->PpiDescriptor.Flags = (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST);
UhcDev->PpiDescriptor.Guid = &gPeiUsbHostControllerPpiGuid;
@@ -199,8 +199,8 @@ UhcPeimEntry (
continue;
}
- UhcDev->EndOfPeiNotifyList.Flags = (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST);
- UhcDev->EndOfPeiNotifyList.Guid = &gEfiEndOfPeiSignalPpiGuid;
+ UhcDev->EndOfPeiNotifyList.Flags = (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST);
+ UhcDev->EndOfPeiNotifyList.Guid = &gEfiEndOfPeiSignalPpiGuid;
UhcDev->EndOfPeiNotifyList.Notify = UhcEndOfPei;
PeiServicesNotifyPpi (&UhcDev->EndOfPeiNotifyList);
@@ -239,46 +239,47 @@ UhcPeimEntry (
EFI_STATUS
EFIAPI
UhcControlTransfer (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_USB_HOST_CONTROLLER_PPI *This,
- IN UINT8 DeviceAddress,
- IN UINT8 DeviceSpeed,
- IN UINT8 MaximumPacketLength,
- IN EFI_USB_DEVICE_REQUEST *Request,
- IN EFI_USB_DATA_DIRECTION TransferDirection,
- IN OUT VOID *Data OPTIONAL,
- IN OUT UINTN *DataLength OPTIONAL,
- IN UINTN TimeOut,
- OUT UINT32 *TransferResult
- )
-{
- USB_UHC_DEV *UhcDev;
- UINT32 StatusReg;
- UINT8 PktID;
- QH_STRUCT *PtrQH;
- TD_STRUCT *PtrTD;
- TD_STRUCT *PtrPreTD;
- TD_STRUCT *PtrSetupTD;
- TD_STRUCT *PtrStatusTD;
- EFI_STATUS Status;
- UINT32 DataLen;
- UINT8 DataToggle;
- UINT8 *RequestPhy;
- VOID *RequestMap;
- UINT8 *DataPhy;
- VOID *DataMap;
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_USB_HOST_CONTROLLER_PPI *This,
+ IN UINT8 DeviceAddress,
+ IN UINT8 DeviceSpeed,
+ IN UINT8 MaximumPacketLength,
+ IN EFI_USB_DEVICE_REQUEST *Request,
+ IN EFI_USB_DATA_DIRECTION TransferDirection,
+ IN OUT VOID *Data OPTIONAL,
+ IN OUT UINTN *DataLength OPTIONAL,
+ IN UINTN TimeOut,
+ OUT UINT32 *TransferResult
+ )
+{
+ USB_UHC_DEV *UhcDev;
+ UINT32 StatusReg;
+ UINT8 PktID;
+ QH_STRUCT *PtrQH;
+ TD_STRUCT *PtrTD;
+ TD_STRUCT *PtrPreTD;
+ TD_STRUCT *PtrSetupTD;
+ TD_STRUCT *PtrStatusTD;
+ EFI_STATUS Status;
+ UINT32 DataLen;
+ UINT8 DataToggle;
+ UINT8 *RequestPhy;
+ VOID *RequestMap;
+ UINT8 *DataPhy;
+ VOID *DataMap;
- UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
+ UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
- StatusReg = UhcDev->UsbHostControllerBaseAddress + USBSTS;
+ StatusReg = UhcDev->UsbHostControllerBaseAddress + USBSTS;
- PktID = INPUT_PACKET_ID;
+ PktID = INPUT_PACKET_ID;
- RequestMap = NULL;
+ RequestMap = NULL;
- if (Request == NULL || TransferResult == NULL) {
+ if ((Request == NULL) || (TransferResult == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
//
// if errors exist that cause host controller halt,
// then return EFI_DEVICE_ERROR.
@@ -307,6 +308,7 @@ UhcControlTransfer (
if (RequestMap != NULL) {
IoMmuUnmap (UhcDev->IoMmu, RequestMap);
}
+
return Status;
}
@@ -321,9 +323,9 @@ UhcControlTransfer (
DeviceAddress,
0,
DeviceSpeed,
- (UINT8 *) Request,
+ (UINT8 *)Request,
RequestPhy,
- (UINT8) sizeof (EFI_USB_DEVICE_REQUEST),
+ (UINT8)sizeof (EFI_USB_DEVICE_REQUEST),
&PtrSetupTD
);
@@ -341,22 +343,22 @@ UhcControlTransfer (
if (TransferDirection == EfiUsbNoData) {
DataLen = 0;
} else {
- DataLen = (UINT32) *DataLength;
+ DataLen = (UINT32)*DataLength;
}
- DataToggle = 1;
+ DataToggle = 1;
- PtrTD = PtrSetupTD;
+ PtrTD = PtrSetupTD;
while (DataLen > 0) {
//
// create TD structures and link together
//
- UINT8 PacketSize;
+ UINT8 PacketSize;
//
// PacketSize is the data load size of each TD carries.
//
- PacketSize = (UINT8) DataLen;
+ PacketSize = (UINT8)DataLen;
if (DataLen > MaximumPacketLength) {
PacketSize = MaximumPacketLength;
}
@@ -381,9 +383,9 @@ UhcControlTransfer (
PtrPreTD = PtrTD;
DataToggle ^= 1;
- Data = (VOID *) ((UINT8 *) Data + PacketSize);
- DataPhy += PacketSize;
- DataLen -= PacketSize;
+ Data = (VOID *)((UINT8 *)Data + PacketSize);
+ DataPhy += PacketSize;
+ DataLen -= PacketSize;
}
//
@@ -399,6 +401,7 @@ UhcControlTransfer (
} else {
PktID = OUTPUT_PACKET_ID;
}
+
//
// create Status Stage TD structure
//
@@ -418,17 +421,17 @@ UhcControlTransfer (
// detail status is returned
//
Status = ExecuteControlTransfer (
- UhcDev,
- PtrSetupTD,
- DataLength,
- TimeOut,
- TransferResult
- );
+ UhcDev,
+ PtrSetupTD,
+ DataLength,
+ TimeOut,
+ TransferResult
+ );
//
// TRUE means must search other framelistindex
//
- SetQHVerticalValidorInvalid(PtrQH, FALSE);
+ SetQHVerticalValidorInvalid (PtrQH, FALSE);
DeleteQueuedTDs (UhcDev, PtrSetupTD);
//
@@ -436,7 +439,7 @@ UhcControlTransfer (
//
if (!IsStatusOK (UhcDev, StatusReg)) {
*TransferResult |= EFI_USB_ERR_SYSTEM;
- Status = EFI_DEVICE_ERROR;
+ Status = EFI_DEVICE_ERROR;
}
ClearStatusReg (UhcDev, StatusReg);
@@ -444,6 +447,7 @@ UhcControlTransfer (
if (DataMap != NULL) {
IoMmuUnmap (UhcDev->IoMmu, DataMap);
}
+
if (RequestMap != NULL) {
IoMmuUnmap (UhcDev->IoMmu, RequestMap);
}
@@ -483,42 +487,42 @@ UhcControlTransfer (
EFI_STATUS
EFIAPI
UhcBulkTransfer (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_USB_HOST_CONTROLLER_PPI *This,
- IN UINT8 DeviceAddress,
- IN UINT8 EndPointAddress,
- IN UINT8 MaximumPacketLength,
- IN OUT VOID *Data,
- IN OUT UINTN *DataLength,
- IN OUT UINT8 *DataToggle,
- IN UINTN TimeOut,
- OUT UINT32 *TransferResult
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_USB_HOST_CONTROLLER_PPI *This,
+ IN UINT8 DeviceAddress,
+ IN UINT8 EndPointAddress,
+ IN UINT8 MaximumPacketLength,
+ IN OUT VOID *Data,
+ IN OUT UINTN *DataLength,
+ IN OUT UINT8 *DataToggle,
+ IN UINTN TimeOut,
+ OUT UINT32 *TransferResult
)
{
- USB_UHC_DEV *UhcDev;
- UINT32 StatusReg;
+ USB_UHC_DEV *UhcDev;
+ UINT32 StatusReg;
- UINT32 DataLen;
+ UINT32 DataLen;
- QH_STRUCT *PtrQH;
- TD_STRUCT *PtrFirstTD;
- TD_STRUCT *PtrTD;
- TD_STRUCT *PtrPreTD;
+ QH_STRUCT *PtrQH;
+ TD_STRUCT *PtrFirstTD;
+ TD_STRUCT *PtrTD;
+ TD_STRUCT *PtrPreTD;
- UINT8 PktID;
+ UINT8 PktID;
- BOOLEAN IsFirstTD;
+ BOOLEAN IsFirstTD;
- EFI_STATUS Status;
+ EFI_STATUS Status;
EFI_USB_DATA_DIRECTION TransferDirection;
- BOOLEAN ShortPacketEnable;
+ BOOLEAN ShortPacketEnable;
- UINT16 CommandContent;
+ UINT16 CommandContent;
- UINT8 *DataPhy;
- VOID *DataMap;
+ UINT8 *DataPhy;
+ VOID *DataMap;
UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
@@ -533,16 +537,16 @@ UhcBulkTransfer (
USBWritePortW (UhcDev, UhcDev->UsbHostControllerBaseAddress + USBCMD, CommandContent);
}
- StatusReg = UhcDev->UsbHostControllerBaseAddress + USBSTS;
+ StatusReg = UhcDev->UsbHostControllerBaseAddress + USBSTS;
//
// these code lines are added here per complier's strict demand
//
- PktID = INPUT_PACKET_ID;
- PtrTD = NULL;
- PtrFirstTD = NULL;
- PtrPreTD = NULL;
- DataLen = 0;
+ PktID = INPUT_PACKET_ID;
+ PtrTD = NULL;
+ PtrFirstTD = NULL;
+ PtrPreTD = NULL;
+ DataLen = 0;
ShortPacketEnable = FALSE;
@@ -554,15 +558,16 @@ UhcBulkTransfer (
return EFI_INVALID_PARAMETER;
}
- if (MaximumPacketLength != 8 && MaximumPacketLength != 16
- && MaximumPacketLength != 32 && MaximumPacketLength != 64) {
+ if ( (MaximumPacketLength != 8) && (MaximumPacketLength != 16)
+ && (MaximumPacketLength != 32) && (MaximumPacketLength != 64))
+ {
return EFI_INVALID_PARAMETER;
}
+
//
// if has errors that cause host controller halt, then return EFI_DEVICE_ERROR directly.
//
if (!IsStatusOK (UhcDev, StatusReg)) {
-
ClearStatusReg (UhcDev, StatusReg);
*TransferResult = EFI_USB_ERR_SYSTEM;
return EFI_DEVICE_ERROR;
@@ -586,7 +591,7 @@ UhcBulkTransfer (
return Status;
}
- DataLen = (UINT32) *DataLength;
+ DataLen = (UINT32)*DataLength;
PtrQH = UhcDev->BulkQH;
@@ -595,9 +600,9 @@ UhcBulkTransfer (
//
// create TD structures and link together
//
- UINT8 PacketSize;
+ UINT8 PacketSize;
- PacketSize = (UINT8) DataLen;
+ PacketSize = (UINT8)DataLen;
if (DataLen > MaximumPacketLength) {
PacketSize = MaximumPacketLength;
}
@@ -637,10 +642,11 @@ UhcBulkTransfer (
PtrPreTD = PtrTD;
*DataToggle ^= 1;
- Data = (VOID *) ((UINT8 *) Data + PacketSize);
- DataPhy += PacketSize;
- DataLen -= PacketSize;
+ Data = (VOID *)((UINT8 *)Data + PacketSize);
+ DataPhy += PacketSize;
+ DataLen -= PacketSize;
}
+
//
// link TD structures to QH structure
//
@@ -655,13 +661,13 @@ UhcBulkTransfer (
// of the last successful TD
//
Status = ExecBulkTransfer (
- UhcDev,
- PtrFirstTD,
- DataLength,
- DataToggle,
- TimeOut,
- TransferResult
- );
+ UhcDev,
+ PtrFirstTD,
+ DataLength,
+ DataToggle,
+ TimeOut,
+ TransferResult
+ );
//
// Delete Bulk transfer TD structure
@@ -673,7 +679,7 @@ UhcBulkTransfer (
//
if (!IsStatusOK (UhcDev, StatusReg)) {
*TransferResult |= EFI_USB_ERR_SYSTEM;
- Status = EFI_DEVICE_ERROR;
+ Status = EFI_DEVICE_ERROR;
}
ClearStatusReg (UhcDev, StatusReg);
@@ -700,15 +706,15 @@ UhcBulkTransfer (
EFI_STATUS
EFIAPI
UhcGetRootHubPortNumber (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_USB_HOST_CONTROLLER_PPI *This,
- OUT UINT8 *PortNumber
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_USB_HOST_CONTROLLER_PPI *This,
+ OUT UINT8 *PortNumber
)
{
- USB_UHC_DEV *UhcDev;
- UINT32 PSAddr;
- UINT16 RHPortControl;
- UINT32 Index;
+ USB_UHC_DEV *UhcDev;
+ UINT32 PSAddr;
+ UINT16 RHPortControl;
+ UINT32 Index;
UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
@@ -719,7 +725,7 @@ UhcGetRootHubPortNumber (
*PortNumber = 0;
for (Index = 0; Index < 2; Index++) {
- PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + Index * 2;
+ PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + Index * 2;
RHPortControl = USBReadPortW (UhcDev, PSAddr);
//
// Port Register content is valid
@@ -748,16 +754,16 @@ UhcGetRootHubPortNumber (
EFI_STATUS
EFIAPI
UhcGetRootHubPortStatus (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_USB_HOST_CONTROLLER_PPI *This,
- IN UINT8 PortNumber,
- OUT EFI_USB_PORT_STATUS *PortStatus
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_USB_HOST_CONTROLLER_PPI *This,
+ IN UINT8 PortNumber,
+ OUT EFI_USB_PORT_STATUS *PortStatus
)
{
- USB_UHC_DEV *UhcDev;
- UINT32 PSAddr;
- UINT16 RHPortStatus;
- UINT8 TotalPortNumber;
+ USB_UHC_DEV *UhcDev;
+ UINT32 PSAddr;
+ UINT16 RHPortStatus;
+ UINT8 TotalPortNumber;
if (PortStatus == NULL) {
return EFI_INVALID_PARAMETER;
@@ -768,11 +774,11 @@ UhcGetRootHubPortStatus (
return EFI_INVALID_PARAMETER;
}
- UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
- PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + PortNumber * 2;
+ UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
+ PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + PortNumber * 2;
- PortStatus->PortStatus = 0;
- PortStatus->PortChangeStatus = 0;
+ PortStatus->PortStatus = 0;
+ PortStatus->PortChangeStatus = 0;
RHPortStatus = USBReadPortW (UhcDev, PSAddr);
@@ -782,30 +788,35 @@ UhcGetRootHubPortStatus (
if ((RHPortStatus & USBPORTSC_CCS) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_CONNECTION;
}
+
//
// Port Enabled/Disabled
//
if ((RHPortStatus & USBPORTSC_PED) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_ENABLE;
}
+
//
// Port Suspend
//
if ((RHPortStatus & USBPORTSC_SUSP) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_SUSPEND;
}
+
//
// Port Reset
//
if ((RHPortStatus & USBPORTSC_PR) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_RESET;
}
+
//
// Low Speed Device Attached
//
if ((RHPortStatus & USBPORTSC_LSDA) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_LOW_SPEED;
}
+
//
// Fill Port Status Change bits
//
@@ -815,6 +826,7 @@ UhcGetRootHubPortStatus (
if ((RHPortStatus & USBPORTSC_CSC) != 0) {
PortStatus->PortChangeStatus |= USB_PORT_STAT_C_CONNECTION;
}
+
//
// Port Enabled/Disabled Change
//
@@ -841,59 +853,59 @@ UhcGetRootHubPortStatus (
EFI_STATUS
EFIAPI
UhcSetRootHubPortFeature (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_USB_HOST_CONTROLLER_PPI *This,
- IN UINT8 PortNumber,
- IN EFI_USB_PORT_FEATURE PortFeature
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_USB_HOST_CONTROLLER_PPI *This,
+ IN UINT8 PortNumber,
+ IN EFI_USB_PORT_FEATURE PortFeature
)
{
- USB_UHC_DEV *UhcDev;
- UINT32 PSAddr;
- UINT32 CommandRegAddr;
- UINT16 RHPortControl;
- UINT8 TotalPortNumber;
+ USB_UHC_DEV *UhcDev;
+ UINT32 PSAddr;
+ UINT32 CommandRegAddr;
+ UINT16 RHPortControl;
+ UINT8 TotalPortNumber;
UhcGetRootHubPortNumber (PeiServices, This, &TotalPortNumber);
if (PortNumber > TotalPortNumber) {
return EFI_INVALID_PARAMETER;
}
- UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
- PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + PortNumber * 2;
- CommandRegAddr = UhcDev->UsbHostControllerBaseAddress + USBCMD;
+ UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
+ PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + PortNumber * 2;
+ CommandRegAddr = UhcDev->UsbHostControllerBaseAddress + USBCMD;
RHPortControl = USBReadPortW (UhcDev, PSAddr);
switch (PortFeature) {
+ case EfiUsbPortSuspend:
+ if ((USBReadPortW (UhcDev, CommandRegAddr) & USBCMD_EGSM) == 0) {
+ //
+ // if global suspend is not active, can set port suspend
+ //
+ RHPortControl &= 0xfff5;
+ RHPortControl |= USBPORTSC_SUSP;
+ }
- case EfiUsbPortSuspend:
- if ((USBReadPortW (UhcDev, CommandRegAddr) & USBCMD_EGSM) == 0) {
+ break;
+
+ case EfiUsbPortReset:
+ RHPortControl &= 0xfff5;
+ RHPortControl |= USBPORTSC_PR;
//
- // if global suspend is not active, can set port suspend
+ // Set the reset bit
//
- RHPortControl &= 0xfff5;
- RHPortControl |= USBPORTSC_SUSP;
- }
- break;
-
- case EfiUsbPortReset:
- RHPortControl &= 0xfff5;
- RHPortControl |= USBPORTSC_PR;
- //
- // Set the reset bit
- //
- break;
+ break;
- case EfiUsbPortPower:
- break;
+ case EfiUsbPortPower:
+ break;
- case EfiUsbPortEnable:
- RHPortControl &= 0xfff5;
- RHPortControl |= USBPORTSC_PED;
- break;
+ case EfiUsbPortEnable:
+ RHPortControl &= 0xfff5;
+ RHPortControl |= USBPORTSC_PED;
+ break;
- default:
- return EFI_INVALID_PARAMETER;
+ default:
+ return EFI_INVALID_PARAMETER;
}
USBWritePortW (UhcDev, PSAddr, RHPortControl);
@@ -919,16 +931,16 @@ UhcSetRootHubPortFeature (
EFI_STATUS
EFIAPI
UhcClearRootHubPortFeature (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_USB_HOST_CONTROLLER_PPI *This,
- IN UINT8 PortNumber,
- IN EFI_USB_PORT_FEATURE PortFeature
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_USB_HOST_CONTROLLER_PPI *This,
+ IN UINT8 PortNumber,
+ IN EFI_USB_PORT_FEATURE PortFeature
)
{
- USB_UHC_DEV *UhcDev;
- UINT32 PSAddr;
- UINT16 RHPortControl;
- UINT8 TotalPortNumber;
+ USB_UHC_DEV *UhcDev;
+ UINT32 PSAddr;
+ UINT16 RHPortControl;
+ UINT8 TotalPortNumber;
UhcGetRootHubPortNumber (PeiServices, This, &TotalPortNumber);
@@ -936,79 +948,79 @@ UhcClearRootHubPortFeature (
return EFI_INVALID_PARAMETER;
}
- UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
- PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + PortNumber * 2;
+ UhcDev = PEI_RECOVERY_USB_UHC_DEV_FROM_UHCI_THIS (This);
+ PSAddr = UhcDev->UsbHostControllerBaseAddress + USBPORTSC1 + PortNumber * 2;
RHPortControl = USBReadPortW (UhcDev, PSAddr);
switch (PortFeature) {
- //
- // clear PORT_ENABLE feature means disable port.
- //
- case EfiUsbPortEnable:
- RHPortControl &= 0xfff5;
- RHPortControl &= ~USBPORTSC_PED;
- break;
+ //
+ // clear PORT_ENABLE feature means disable port.
+ //
+ case EfiUsbPortEnable:
+ RHPortControl &= 0xfff5;
+ RHPortControl &= ~USBPORTSC_PED;
+ break;
- //
- // clear PORT_SUSPEND feature means resume the port.
- // (cause a resume on the specified port if in suspend mode)
- //
- case EfiUsbPortSuspend:
- RHPortControl &= 0xfff5;
- RHPortControl &= ~USBPORTSC_SUSP;
- break;
+ //
+ // clear PORT_SUSPEND feature means resume the port.
+ // (cause a resume on the specified port if in suspend mode)
+ //
+ case EfiUsbPortSuspend:
+ RHPortControl &= 0xfff5;
+ RHPortControl &= ~USBPORTSC_SUSP;
+ break;
- //
- // no operation
- //
- case EfiUsbPortPower:
- break;
+ //
+ // no operation
+ //
+ case EfiUsbPortPower:
+ break;
- //
- // clear PORT_RESET means clear the reset signal.
- //
- case EfiUsbPortReset:
- RHPortControl &= 0xfff5;
- RHPortControl &= ~USBPORTSC_PR;
- break;
+ //
+ // clear PORT_RESET means clear the reset signal.
+ //
+ case EfiUsbPortReset:
+ RHPortControl &= 0xfff5;
+ RHPortControl &= ~USBPORTSC_PR;
+ break;
- //
- // clear connect status change
- //
- case EfiUsbPortConnectChange:
- RHPortControl &= 0xfff5;
- RHPortControl |= USBPORTSC_CSC;
- break;
+ //
+ // clear connect status change
+ //
+ case EfiUsbPortConnectChange:
+ RHPortControl &= 0xfff5;
+ RHPortControl |= USBPORTSC_CSC;
+ break;
- //
- // clear enable/disable status change
- //
- case EfiUsbPortEnableChange:
- RHPortControl &= 0xfff5;
- RHPortControl |= USBPORTSC_PEDC;
- break;
+ //
+ // clear enable/disable status change
+ //
+ case EfiUsbPortEnableChange:
+ RHPortControl &= 0xfff5;
+ RHPortControl |= USBPORTSC_PEDC;
+ break;
- //
- // root hub does not support this request
- //
- case EfiUsbPortSuspendChange:
- break;
+ //
+ // root hub does not support this request
+ //
+ case EfiUsbPortSuspendChange:
+ break;
- //
- // root hub does not support this request
- //
- case EfiUsbPortOverCurrentChange:
- break;
+ //
+ // root hub does not support this request
+ //
+ case EfiUsbPortOverCurrentChange:
+ break;
- //
- // root hub does not support this request
- //
- case EfiUsbPortResetChange:
- break;
+ //
+ // root hub does not support this request
+ //
+ case EfiUsbPortResetChange:
+ break;
- default:
- return EFI_INVALID_PARAMETER;
+ default:
+ return EFI_INVALID_PARAMETER;
}
USBWritePortW (UhcDev, PSAddr, RHPortControl);
@@ -1027,7 +1039,7 @@ UhcClearRootHubPortFeature (
**/
EFI_STATUS
InitializeUsbHC (
- IN USB_UHC_DEV *UhcDev
+ IN USB_UHC_DEV *UhcDev
)
{
EFI_STATUS Status;
@@ -1043,34 +1055,33 @@ InitializeUsbHC (
return Status;
}
- FrameListBaseAddrReg = UhcDev->UsbHostControllerBaseAddress + USBFLBASEADD;
- CommandReg = UhcDev->UsbHostControllerBaseAddress + USBCMD;
+ FrameListBaseAddrReg = UhcDev->UsbHostControllerBaseAddress + USBFLBASEADD;
+ CommandReg = UhcDev->UsbHostControllerBaseAddress + USBCMD;
//
// Set Frame List Base Address to the specific register to inform the hardware.
//
- SetFrameListBaseAddress (UhcDev, FrameListBaseAddrReg, (UINT32) (UINTN) (UhcDev->FrameListEntry));
+ SetFrameListBaseAddress (UhcDev, FrameListBaseAddrReg, (UINT32)(UINTN)(UhcDev->FrameListEntry));
- Command = USBReadPortW (UhcDev, CommandReg);
+ Command = USBReadPortW (UhcDev, CommandReg);
Command |= USBCMD_GRESET;
USBWritePortW (UhcDev, CommandReg, Command);
MicroSecondDelay (50 * 1000);
-
Command &= ~USBCMD_GRESET;
USBWritePortW (UhcDev, CommandReg, Command);
//
- //UHCI spec page120 reset recovery time
+ // UHCI spec page120 reset recovery time
//
MicroSecondDelay (20 * 1000);
//
// Set Run/Stop bit to 1.
//
- Command = USBReadPortW (UhcDev, CommandReg);
+ Command = USBReadPortW (UhcDev, CommandReg);
Command |= USBCMD_RS | USBCMD_MAXP;
USBWritePortW (UhcDev, CommandReg, Command);
@@ -1088,7 +1099,7 @@ InitializeUsbHC (
**/
EFI_STATUS
CreateFrameList (
- USB_UHC_DEV *UhcDev
+ USB_UHC_DEV *UhcDev
)
{
EFI_STATUS Status;
@@ -1111,28 +1122,30 @@ CreateFrameList (
}
//
- //Create Control QH and Bulk QH and link them into Framelist Entry
+ // Create Control QH and Bulk QH and link them into Framelist Entry
//
- Status = CreateQH(UhcDev, &UhcDev->ConfigQH);
+ Status = CreateQH (UhcDev, &UhcDev->ConfigQH);
if (Status != EFI_SUCCESS) {
return EFI_OUT_OF_RESOURCES;
}
+
ASSERT (UhcDev->ConfigQH != NULL);
- Status = CreateQH(UhcDev, &UhcDev->BulkQH);
+ Status = CreateQH (UhcDev, &UhcDev->BulkQH);
if (Status != EFI_SUCCESS) {
return EFI_OUT_OF_RESOURCES;
}
+
ASSERT (UhcDev->BulkQH != NULL);
//
- //Set the corresponding QH pointer
+ // Set the corresponding QH pointer
//
- SetQHHorizontalLinkPtr(UhcDev->ConfigQH, UhcDev->BulkQH);
+ SetQHHorizontalLinkPtr (UhcDev->ConfigQH, UhcDev->BulkQH);
SetQHHorizontalQHorTDSelect (UhcDev->ConfigQH, TRUE);
SetQHHorizontalValidorInvalid (UhcDev->ConfigQH, TRUE);
- UhcDev->FrameListEntry = (FRAMELIST_ENTRY *) ((UINTN) FrameListBaseAddr);
+ UhcDev->FrameListEntry = (FRAMELIST_ENTRY *)((UINTN)FrameListBaseAddr);
FrameListPtr = UhcDev->FrameListEntry;
@@ -1141,7 +1154,7 @@ CreateFrameList (
FrameListPtr->FrameListPtr = (UINT32)(UINTN)UhcDev->ConfigQH >> 4;
FrameListPtr->FrameListPtrQSelect = 1;
FrameListPtr->FrameListRsvd = 0;
- FrameListPtr ++;
+ FrameListPtr++;
}
return EFI_SUCCESS;
@@ -1158,8 +1171,8 @@ CreateFrameList (
**/
UINT16
USBReadPortW (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 Port
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 Port
)
{
return IoRead16 (Port);
@@ -1175,9 +1188,9 @@ USBReadPortW (
**/
VOID
USBWritePortW (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 Port,
- IN UINT16 Data
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 Port,
+ IN UINT16 Data
)
{
IoWrite16 (Port, Data);
@@ -1193,9 +1206,9 @@ USBWritePortW (
**/
VOID
USBWritePortDW (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 Port,
- IN UINT32 Data
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 Port,
+ IN UINT32 Data
)
{
IoWrite32 (Port, Data);
@@ -1210,8 +1223,8 @@ USBWritePortDW (
**/
VOID
ClearStatusReg (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 StatusAddr
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 StatusAddr
)
{
//
@@ -1232,8 +1245,8 @@ ClearStatusReg (
**/
BOOLEAN
IsStatusOK (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 StatusRegAddr
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 StatusRegAddr
)
{
UINT16 StatusValue;
@@ -1247,8 +1260,6 @@ IsStatusOK (
}
}
-
-
/**
Set Frame List Base Address.
@@ -1259,15 +1270,15 @@ IsStatusOK (
**/
VOID
SetFrameListBaseAddress (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 FrameListRegAddr,
- IN UINT32 Addr
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 FrameListRegAddr,
+ IN UINT32 Addr
)
{
//
// Sets value in the USB Frame List Base Address register.
//
- USBWritePortDW (UhcDev, FrameListRegAddr, (UINT32) (Addr & 0xFFFFF000));
+ USBWritePortDW (UhcDev, FrameListRegAddr, (UINT32)(Addr & 0xFFFFF000));
}
/**
@@ -1282,8 +1293,8 @@ SetFrameListBaseAddress (
**/
EFI_STATUS
CreateQH (
- IN USB_UHC_DEV *UhcDev,
- OUT QH_STRUCT **PtrQH
+ IN USB_UHC_DEV *UhcDev,
+ OUT QH_STRUCT **PtrQH
)
{
EFI_STATUS Status;
@@ -1291,10 +1302,11 @@ CreateQH (
//
// allocate align memory for QH_STRUCT
//
- Status = AllocateTDorQHStruct (UhcDev, sizeof(QH_STRUCT), (void **)PtrQH);
+ Status = AllocateTDorQHStruct (UhcDev, sizeof (QH_STRUCT), (void **)PtrQH);
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// init each field of the QH_STRUCT
//
@@ -1322,11 +1334,9 @@ SetQHHorizontalLinkPtr (
// Only the highest 28bit of the address is valid
// (take 32bit address as an example).
//
- PtrQH->QueueHead.QHHorizontalPtr = (UINT32) (UINTN) PtrNext >> 4;
+ PtrQH->QueueHead.QHHorizontalPtr = (UINT32)(UINTN)PtrNext >> 4;
}
-
-
/**
Set a QH or TD horizontally to be connected with a specific QH.
@@ -1385,7 +1395,7 @@ SetQHVerticalLinkPtr (
// Only the highest 28bit of the address is valid
// (take 32bit address as an example).
//
- PtrQH->QueueHead.QHVerticalPtr = (UINT32) (UINTN) PtrNext >> 4;
+ PtrQH->QueueHead.QHVerticalPtr = (UINT32)(UINTN)PtrNext >> 4;
}
/**
@@ -1428,8 +1438,6 @@ SetQHVerticalValidorInvalid (
PtrQH->QueueHead.QHVerticalTerminate = IsValid ? 0 : 1;
}
-
-
/**
Allocate TD or QH Struct.
@@ -1443,21 +1451,21 @@ SetQHVerticalValidorInvalid (
**/
EFI_STATUS
AllocateTDorQHStruct (
- IN USB_UHC_DEV *UhcDev,
- IN UINT32 Size,
- OUT VOID **PtrStruct
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT32 Size,
+ OUT VOID **PtrStruct
)
{
EFI_STATUS Status;
- Status = EFI_SUCCESS;
- *PtrStruct = NULL;
+ Status = EFI_SUCCESS;
+ *PtrStruct = NULL;
Status = UhcAllocatePool (
- UhcDev,
- (UINT8 **) PtrStruct,
- Size
- );
+ UhcDev,
+ (UINT8 **)PtrStruct,
+ Size
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1479,15 +1487,16 @@ AllocateTDorQHStruct (
**/
EFI_STATUS
CreateTD (
- IN USB_UHC_DEV *UhcDev,
- OUT TD_STRUCT **PtrTD
+ IN USB_UHC_DEV *UhcDev,
+ OUT TD_STRUCT **PtrTD
)
{
EFI_STATUS Status;
+
//
// create memory for TD_STRUCT, and align the memory.
//
- Status = AllocateTDorQHStruct (UhcDev, sizeof(TD_STRUCT), (void **)PtrTD);
+ Status = AllocateTDorQHStruct (UhcDev, sizeof (TD_STRUCT), (void **)PtrTD);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1518,14 +1527,14 @@ CreateTD (
**/
EFI_STATUS
GenSetupStageTD (
- IN USB_UHC_DEV *UhcDev,
- IN UINT8 DevAddr,
- IN UINT8 Endpoint,
- IN UINT8 DeviceSpeed,
- IN UINT8 *DevRequest,
- IN UINT8 *RequestPhy,
- IN UINT8 RequestLen,
- OUT TD_STRUCT **PtrTD
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT8 DevAddr,
+ IN UINT8 Endpoint,
+ IN UINT8 DeviceSpeed,
+ IN UINT8 *DevRequest,
+ IN UINT8 *RequestPhy,
+ IN UINT8 RequestLen,
+ OUT TD_STRUCT **PtrTD
)
{
TD_STRUCT *TdStruct;
@@ -1564,14 +1573,15 @@ GenSetupStageTD (
// (TRUE - Slow Device; FALSE - Full Speed Device)
//
switch (DeviceSpeed) {
- case USB_SLOW_SPEED_DEVICE:
- SetTDLoworFullSpeedDevice (TdStruct, TRUE);
- break;
+ case USB_SLOW_SPEED_DEVICE:
+ SetTDLoworFullSpeedDevice (TdStruct, TRUE);
+ break;
- case USB_FULL_SPEED_DEVICE:
- SetTDLoworFullSpeedDevice (TdStruct, FALSE);
- break;
+ case USB_FULL_SPEED_DEVICE:
+ SetTDLoworFullSpeedDevice (TdStruct, FALSE);
+ break;
}
+
//
// Non isochronous transfer TD
//
@@ -1598,13 +1608,13 @@ GenSetupStageTD (
SetTDTokenPacketID (TdStruct, SETUP_PACKET_ID);
- TdStruct->PtrTDBuffer = (UINT8 *) DevRequest;
+ TdStruct->PtrTDBuffer = (UINT8 *)DevRequest;
TdStruct->TDBufferLength = RequestLen;
//
// Set the beginning address of the buffer that will be used
// during the transaction.
//
- TdStruct->TDData.TDBufferPtr = (UINT32) (UINTN) RequestPhy;
+ TdStruct->TDData.TDBufferPtr = (UINT32)(UINTN)RequestPhy;
*PtrTD = TdStruct;
@@ -1631,16 +1641,16 @@ GenSetupStageTD (
**/
EFI_STATUS
GenDataTD (
- IN USB_UHC_DEV *UhcDev,
- IN UINT8 DevAddr,
- IN UINT8 Endpoint,
- IN UINT8 *PtrData,
- IN UINT8 *DataPhy,
- IN UINT8 Len,
- IN UINT8 PktID,
- IN UINT8 Toggle,
- IN UINT8 DeviceSpeed,
- OUT TD_STRUCT **PtrTD
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT8 DevAddr,
+ IN UINT8 Endpoint,
+ IN UINT8 *PtrData,
+ IN UINT8 *DataPhy,
+ IN UINT8 Len,
+ IN UINT8 PktID,
+ IN UINT8 Toggle,
+ IN UINT8 DeviceSpeed,
+ OUT TD_STRUCT **PtrTD
)
{
TD_STRUCT *TdStruct;
@@ -1683,14 +1693,15 @@ GenDataTD (
// (TRUE - Slow Device; FALSE - Full Speed Device)
//
switch (DeviceSpeed) {
- case USB_SLOW_SPEED_DEVICE:
- SetTDLoworFullSpeedDevice (TdStruct, TRUE);
- break;
+ case USB_SLOW_SPEED_DEVICE:
+ SetTDLoworFullSpeedDevice (TdStruct, TRUE);
+ break;
- case USB_FULL_SPEED_DEVICE:
- SetTDLoworFullSpeedDevice (TdStruct, FALSE);
- break;
+ case USB_FULL_SPEED_DEVICE:
+ SetTDLoworFullSpeedDevice (TdStruct, FALSE);
+ break;
}
+
//
// Non isochronous transfer TD
//
@@ -1721,13 +1732,13 @@ GenDataTD (
SetTDTokenPacketID (TdStruct, PktID);
- TdStruct->PtrTDBuffer = (UINT8 *) PtrData;
+ TdStruct->PtrTDBuffer = (UINT8 *)PtrData;
TdStruct->TDBufferLength = Len;
//
// Set the beginning address of the buffer that will be used
// during the transaction.
//
- TdStruct->TDData.TDBufferPtr = (UINT32) (UINTN) DataPhy;
+ TdStruct->TDData.TDBufferPtr = (UINT32)(UINTN)DataPhy;
*PtrTD = TdStruct;
@@ -1750,12 +1761,12 @@ GenDataTD (
**/
EFI_STATUS
CreateStatusTD (
- IN USB_UHC_DEV *UhcDev,
- IN UINT8 DevAddr,
- IN UINT8 Endpoint,
- IN UINT8 PktID,
- IN UINT8 DeviceSpeed,
- OUT TD_STRUCT **PtrTD
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT8 DevAddr,
+ IN UINT8 Endpoint,
+ IN UINT8 PktID,
+ IN UINT8 DeviceSpeed,
+ OUT TD_STRUCT **PtrTD
)
{
TD_STRUCT *PtrTDStruct;
@@ -1794,14 +1805,15 @@ CreateStatusTD (
// (TRUE - Slow Device; FALSE - Full Speed Device)
//
switch (DeviceSpeed) {
- case USB_SLOW_SPEED_DEVICE:
- SetTDLoworFullSpeedDevice (PtrTDStruct, TRUE);
- break;
+ case USB_SLOW_SPEED_DEVICE:
+ SetTDLoworFullSpeedDevice (PtrTDStruct, TRUE);
+ break;
- case USB_FULL_SPEED_DEVICE:
- SetTDLoworFullSpeedDevice (PtrTDStruct, FALSE);
- break;
+ case USB_FULL_SPEED_DEVICE:
+ SetTDLoworFullSpeedDevice (PtrTDStruct, FALSE);
+ break;
}
+
//
// Non isochronous transfer TD
//
@@ -1828,7 +1840,7 @@ CreateStatusTD (
SetTDTokenPacketID (PtrTDStruct, PktID);
- PtrTDStruct->PtrTDBuffer = NULL;
+ PtrTDStruct->PtrTDBuffer = NULL;
PtrTDStruct->TDBufferLength = 0;
//
// Set the beginning address of the buffer that will be used
@@ -1850,8 +1862,8 @@ CreateStatusTD (
**/
VOID
SetTDLinkPtrValidorInvalid (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsValid
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsValid
)
{
//
@@ -1870,8 +1882,8 @@ SetTDLinkPtrValidorInvalid (
**/
VOID
SetTDLinkPtrQHorTDSelect (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsQH
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsQH
)
{
//
@@ -1889,8 +1901,8 @@ SetTDLinkPtrQHorTDSelect (
**/
VOID
SetTDLinkPtrDepthorBreadth (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsDepth
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsDepth
)
{
//
@@ -1909,15 +1921,15 @@ SetTDLinkPtrDepthorBreadth (
**/
VOID
SetTDLinkPtr (
- IN TD_STRUCT *PtrTDStruct,
- IN VOID *PtrNext
+ IN TD_STRUCT *PtrTDStruct,
+ IN VOID *PtrNext
)
{
//
// Set TD Link Pointer. Since QH,TD align on 16-byte boundaries,
// only the highest 28 bits are valid. (if take 32bit address as an example)
//
- PtrTDStruct->TDData.TDLinkPtr = (UINT32) (UINTN) PtrNext >> 4;
+ PtrTDStruct->TDData.TDLinkPtr = (UINT32)(UINTN)PtrNext >> 4;
}
/**
@@ -1930,18 +1942,16 @@ SetTDLinkPtr (
**/
VOID *
GetTDLinkPtr (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
//
// Get TD Link Pointer. Restore it back to 32bit
// (if take 32bit address as an example)
//
- return (VOID *) (UINTN) ((PtrTDStruct->TDData.TDLinkPtr) << 4);
+ return (VOID *)(UINTN)((PtrTDStruct->TDData.TDLinkPtr) << 4);
}
-
-
/**
Enable/Disable short packet detection mechanism.
@@ -1951,8 +1961,8 @@ GetTDLinkPtr (
**/
VOID
EnableorDisableTDShortPacket (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsEnable
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsEnable
)
{
//
@@ -1970,8 +1980,8 @@ EnableorDisableTDShortPacket (
**/
VOID
SetTDControlErrorCounter (
- IN TD_STRUCT *PtrTDStruct,
- IN UINT8 MaxErrors
+ IN TD_STRUCT *PtrTDStruct,
+ IN UINT8 MaxErrors
)
{
//
@@ -1993,8 +2003,8 @@ SetTDControlErrorCounter (
**/
VOID
SetTDLoworFullSpeedDevice (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsLowSpeedDevice
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsLowSpeedDevice
)
{
//
@@ -2012,8 +2022,8 @@ SetTDLoworFullSpeedDevice (
**/
VOID
SetTDControlIsochronousorNot (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsIsochronous
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsIsochronous
)
{
//
@@ -2032,8 +2042,8 @@ SetTDControlIsochronousorNot (
**/
VOID
SetorClearTDControlIOC (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsSet
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsSet
)
{
//
@@ -2052,8 +2062,8 @@ SetorClearTDControlIOC (
**/
VOID
SetTDStatusActiveorInactive (
- IN TD_STRUCT *PtrTDStruct,
- IN BOOLEAN IsActive
+ IN TD_STRUCT *PtrTDStruct,
+ IN BOOLEAN IsActive
)
{
//
@@ -2077,8 +2087,8 @@ SetTDStatusActiveorInactive (
**/
UINT16
SetTDTokenMaxLength (
- IN TD_STRUCT *PtrTDStruct,
- IN UINT16 MaxLen
+ IN TD_STRUCT *PtrTDStruct,
+ IN UINT16 MaxLen
)
{
//
@@ -2102,7 +2112,7 @@ SetTDTokenMaxLength (
**/
VOID
SetTDTokenDataToggle1 (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
//
@@ -2119,7 +2129,7 @@ SetTDTokenDataToggle1 (
**/
VOID
SetTDTokenDataToggle0 (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
//
@@ -2137,14 +2147,14 @@ SetTDTokenDataToggle0 (
**/
VOID
SetTDTokenEndPoint (
- IN TD_STRUCT *PtrTDStruct,
- IN UINTN EndPoint
+ IN TD_STRUCT *PtrTDStruct,
+ IN UINTN EndPoint
)
{
//
// Set EndPoint Number the TD is targeting at.
//
- PtrTDStruct->TDData.TDTokenEndPt = (UINT8) EndPoint;
+ PtrTDStruct->TDData.TDTokenEndPt = (UINT8)EndPoint;
}
/**
@@ -2156,14 +2166,14 @@ SetTDTokenEndPoint (
**/
VOID
SetTDTokenDeviceAddress (
- IN TD_STRUCT *PtrTDStruct,
- IN UINTN DevAddr
+ IN TD_STRUCT *PtrTDStruct,
+ IN UINTN DevAddr
)
{
//
// Set Device Address the TD is targeting at.
//
- PtrTDStruct->TDData.TDTokenDevAddr = (UINT8) DevAddr;
+ PtrTDStruct->TDData.TDTokenDevAddr = (UINT8)DevAddr;
}
/**
@@ -2175,8 +2185,8 @@ SetTDTokenDeviceAddress (
**/
VOID
SetTDTokenPacketID (
- IN TD_STRUCT *PtrTDStruct,
- IN UINT8 PacketID
+ IN TD_STRUCT *PtrTDStruct,
+ IN UINT8 PacketID
)
{
//
@@ -2195,16 +2205,16 @@ SetTDTokenPacketID (
**/
BOOLEAN
IsTDStatusActive (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether the TD is active.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x80);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x80);
}
/**
@@ -2217,16 +2227,16 @@ IsTDStatusActive (
**/
BOOLEAN
IsTDStatusStalled (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether the device/endpoint addressed by this TD is stalled.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x40);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x40);
}
/**
@@ -2239,16 +2249,16 @@ IsTDStatusStalled (
**/
BOOLEAN
IsTDStatusBufferError (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether Data Buffer Error is happened.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x20);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x20);
}
/**
@@ -2261,16 +2271,16 @@ IsTDStatusBufferError (
**/
BOOLEAN
IsTDStatusBabbleError (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether Babble Error is happened.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x10);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x10);
}
/**
@@ -2283,16 +2293,16 @@ IsTDStatusBabbleError (
**/
BOOLEAN
IsTDStatusNAKReceived (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether NAK is received.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x08);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x08);
}
/**
@@ -2305,16 +2315,16 @@ IsTDStatusNAKReceived (
**/
BOOLEAN
IsTDStatusCRCTimeOutError (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether CRC/Time Out Error is encountered.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x04);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x04);
}
/**
@@ -2327,16 +2337,16 @@ IsTDStatusCRCTimeOutError (
**/
BOOLEAN
IsTDStatusBitStuffError (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
- UINT8 TDStatus;
+ UINT8 TDStatus;
//
// Detect whether Bitstuff Error is received.
//
- TDStatus = (UINT8) (PtrTDStruct->TDData.TDStatus);
- return (BOOLEAN) (TDStatus & 0x02);
+ TDStatus = (UINT8)(PtrTDStruct->TDData.TDStatus);
+ return (BOOLEAN)(TDStatus & 0x02);
}
/**
@@ -2349,14 +2359,14 @@ IsTDStatusBitStuffError (
**/
UINT16
GetTDStatusActualLength (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
//
// Retrieve the actual number of bytes that were tansferred.
// the value is encoded as n-1. so return the decoded value.
//
- return (UINT16) ((PtrTDStruct->TDData.TDStatusActualLength) + 1);
+ return (UINT16)((PtrTDStruct->TDData.TDStatusActualLength) + 1);
}
/**
@@ -2369,7 +2379,7 @@ GetTDStatusActualLength (
**/
BOOLEAN
GetTDLinkPtrValidorInvalid (
- IN TD_STRUCT *PtrTDStruct
+ IN TD_STRUCT *PtrTDStruct
)
{
//
@@ -2381,7 +2391,6 @@ GetTDLinkPtrValidorInvalid (
} else {
return TRUE;
}
-
}
/**
@@ -2394,19 +2403,19 @@ GetTDLinkPtrValidorInvalid (
**/
UINTN
CountTDsNumber (
- IN TD_STRUCT *PtrFirstTD
+ IN TD_STRUCT *PtrFirstTD
)
{
- UINTN Number;
- TD_STRUCT *Ptr;
+ UINTN Number;
+ TD_STRUCT *Ptr;
//
// Count the queued TDs number.
//
- Number = 0;
- Ptr = PtrFirstTD;
+ Number = 0;
+ Ptr = PtrFirstTD;
while (Ptr != 0) {
- Ptr = (TD_STRUCT *) Ptr->PtrNextTD;
+ Ptr = (TD_STRUCT *)Ptr->PtrNextTD;
Number++;
}
@@ -2422,13 +2431,14 @@ CountTDsNumber (
**/
VOID
LinkTDToQH (
- IN QH_STRUCT *PtrQH,
- IN TD_STRUCT *PtrTD
+ IN QH_STRUCT *PtrQH,
+ IN TD_STRUCT *PtrTD
)
{
- if (PtrQH == NULL || PtrTD == NULL) {
- return ;
+ if ((PtrQH == NULL) || (PtrTD == NULL)) {
+ return;
}
+
//
// Validate QH Vertical Ptr field
//
@@ -2439,9 +2449,9 @@ LinkTDToQH (
//
SetQHVerticalQHorTDSelect (PtrQH, FALSE);
- SetQHVerticalLinkPtr (PtrQH, (VOID *) PtrTD);
+ SetQHVerticalLinkPtr (PtrQH, (VOID *)PtrTD);
- PtrQH->PtrDown = (VOID *) PtrTD;
+ PtrQH->PtrDown = (VOID *)PtrTD;
}
/**
@@ -2453,13 +2463,14 @@ LinkTDToQH (
**/
VOID
LinkTDToTD (
- IN TD_STRUCT *PtrPreTD,
- IN TD_STRUCT *PtrTD
+ IN TD_STRUCT *PtrPreTD,
+ IN TD_STRUCT *PtrTD
)
{
- if (PtrPreTD == NULL || PtrTD == NULL) {
- return ;
+ if ((PtrPreTD == NULL) || (PtrTD == NULL)) {
+ return;
}
+
//
// Depth first fashion
//
@@ -2477,9 +2488,9 @@ LinkTDToTD (
SetTDLinkPtr (PtrPreTD, PtrTD);
- PtrPreTD->PtrNextTD = (VOID *) PtrTD;
+ PtrPreTD->PtrNextTD = (VOID *)PtrTD;
- PtrTD->PtrNextTD = NULL;
+ PtrTD->PtrNextTD = NULL;
}
/**
@@ -2498,21 +2509,21 @@ LinkTDToTD (
**/
EFI_STATUS
ExecuteControlTransfer (
- IN USB_UHC_DEV *UhcDev,
- IN TD_STRUCT *PtrTD,
- OUT UINTN *ActualLen,
- IN UINTN TimeOut,
- OUT UINT32 *TransferResult
+ IN USB_UHC_DEV *UhcDev,
+ IN TD_STRUCT *PtrTD,
+ OUT UINTN *ActualLen,
+ IN UINTN TimeOut,
+ OUT UINT32 *TransferResult
)
{
- UINTN ErrTDPos;
- UINTN Delay;
- BOOLEAN InfiniteLoop;
+ UINTN ErrTDPos;
+ UINTN Delay;
+ BOOLEAN InfiniteLoop;
- ErrTDPos = 0;
- *TransferResult = EFI_USB_NOERROR;
- *ActualLen = 0;
- InfiniteLoop = FALSE;
+ ErrTDPos = 0;
+ *TransferResult = EFI_USB_NOERROR;
+ *ActualLen = 0;
+ InfiniteLoop = FALSE;
Delay = TimeOut * STALL_1_MILLI_SECOND;
//
@@ -2524,7 +2535,6 @@ ExecuteControlTransfer (
}
do {
-
CheckTDsResults (PtrTD, TransferResult, &ErrTDPos, ActualLen);
//
@@ -2533,9 +2543,9 @@ ExecuteControlTransfer (
if ((*TransferResult & EFI_USB_ERR_NOTEXECUTE) != EFI_USB_ERR_NOTEXECUTE) {
break;
}
+
MicroSecondDelay (STALL_1_MICRO_SECOND);
Delay--;
-
} while (InfiniteLoop || (Delay != 0));
if (*TransferResult != EFI_USB_NOERROR) {
@@ -2562,23 +2572,23 @@ ExecuteControlTransfer (
**/
EFI_STATUS
ExecBulkTransfer (
- IN USB_UHC_DEV *UhcDev,
- IN TD_STRUCT *PtrTD,
- IN OUT UINTN *ActualLen,
- IN UINT8 *DataToggle,
- IN UINTN TimeOut,
- OUT UINT32 *TransferResult
+ IN USB_UHC_DEV *UhcDev,
+ IN TD_STRUCT *PtrTD,
+ IN OUT UINTN *ActualLen,
+ IN UINT8 *DataToggle,
+ IN UINTN TimeOut,
+ OUT UINT32 *TransferResult
)
{
- UINTN ErrTDPos;
- UINTN ScrollNum;
- UINTN Delay;
- BOOLEAN InfiniteLoop;
+ UINTN ErrTDPos;
+ UINTN ScrollNum;
+ UINTN Delay;
+ BOOLEAN InfiniteLoop;
- ErrTDPos = 0;
- *TransferResult = EFI_USB_NOERROR;
- *ActualLen = 0;
- InfiniteLoop = FALSE;
+ ErrTDPos = 0;
+ *TransferResult = EFI_USB_NOERROR;
+ *ActualLen = 0;
+ InfiniteLoop = FALSE;
Delay = TimeOut * STALL_1_MILLI_SECOND;
//
@@ -2590,7 +2600,6 @@ ExecBulkTransfer (
}
do {
-
CheckTDsResults (PtrTD, TransferResult, &ErrTDPos, ActualLen);
//
// TD is inactive, thus meaning bulk transfer's end.
@@ -2598,9 +2607,9 @@ ExecBulkTransfer (
if ((*TransferResult & EFI_USB_ERR_NOTEXECUTE) != EFI_USB_ERR_NOTEXECUTE) {
break;
}
+
MicroSecondDelay (STALL_1_MICRO_SECOND);
Delay--;
-
} while (InfiniteLoop || (Delay != 0));
//
@@ -2615,9 +2624,9 @@ ExecBulkTransfer (
*DataToggle ^= 1;
}
- //
- // If error, wait 100ms to retry by upper layer
- //
+ //
+ // If error, wait 100ms to retry by upper layer
+ //
MicroSecondDelay (100 * 1000);
return EFI_DEVICE_ERROR;
}
@@ -2634,20 +2643,19 @@ ExecBulkTransfer (
**/
VOID
DeleteQueuedTDs (
- IN USB_UHC_DEV *UhcDev,
- IN TD_STRUCT *PtrFirstTD
+ IN USB_UHC_DEV *UhcDev,
+ IN TD_STRUCT *PtrFirstTD
)
{
- TD_STRUCT *Tptr1;
+ TD_STRUCT *Tptr1;
- TD_STRUCT *Tptr2;
+ TD_STRUCT *Tptr2;
Tptr1 = PtrFirstTD;
//
// Delete all the TDs in a queue.
//
while (Tptr1 != NULL) {
-
Tptr2 = Tptr1;
if (!GetTDLinkPtrValidorInvalid (Tptr2)) {
@@ -2659,10 +2667,10 @@ DeleteQueuedTDs (
Tptr1 = GetTDLinkPtr (Tptr2);
}
- UhcFreePool (UhcDev, (UINT8 *) Tptr2, sizeof (TD_STRUCT));
+ UhcFreePool (UhcDev, (UINT8 *)Tptr2, sizeof (TD_STRUCT));
}
- return ;
+ return;
}
/**
@@ -2678,13 +2686,13 @@ DeleteQueuedTDs (
**/
BOOLEAN
CheckTDsResults (
- IN TD_STRUCT *PtrTD,
- OUT UINT32 *Result,
- OUT UINTN *ErrTDPos,
- OUT UINTN *ActualTransferSize
+ IN TD_STRUCT *PtrTD,
+ OUT UINT32 *Result,
+ OUT UINTN *ErrTDPos,
+ OUT UINTN *ActualTransferSize
)
{
- UINTN Len;
+ UINTN Len;
*Result = EFI_USB_NOERROR;
*ErrTDPos = 0;
@@ -2695,7 +2703,6 @@ CheckTDsResults (
*ActualTransferSize = 0;
while (PtrTD != NULL) {
-
if (IsTDStatusActive (PtrTD)) {
*Result |= EFI_USB_ERR_NOTEXECUTE;
}
@@ -2723,10 +2730,11 @@ CheckTDsResults (
if (IsTDStatusBitStuffError (PtrTD)) {
*Result |= EFI_USB_ERR_BITSTUFF;
}
+
//
// Accumulate actual transferred data length in each TD.
//
- Len = GetTDStatusActualLength (PtrTD) & 0x7FF;
+ Len = GetTDStatusActualLength (PtrTD) & 0x7FF;
*ActualTransferSize += Len;
//
@@ -2736,7 +2744,7 @@ CheckTDsResults (
return FALSE;
}
- PtrTD = (TD_STRUCT *) (PtrTD->PtrNextTD);
+ PtrTD = (TD_STRUCT *)(PtrTD->PtrNextTD);
//
// Record the first Error TD's position in the queue,
// this value is zero-based.
@@ -2777,13 +2785,13 @@ CreateMemoryBlock (
// memory management header and bit array use 1 page
//
MemPages = MemoryBlockSizeInPages + 1;
- Status = IoMmuAllocateBuffer (
- UhcDev->IoMmu,
- MemPages,
- (VOID **) &TempPtr,
- &MappedAddr,
- &Mapping
- );
+ Status = IoMmuAllocateBuffer (
+ UhcDev->IoMmu,
+ MemPages,
+ (VOID **)&TempPtr,
+ &MappedAddr,
+ &Mapping
+ );
if (EFI_ERROR (Status) || (TempPtr == NULL)) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2792,7 +2800,7 @@ CreateMemoryBlock (
ZeroMem (Ptr, MemPages * EFI_PAGE_SIZE);
- *MemoryHeader = (MEMORY_MANAGE_HEADER *) Ptr;
+ *MemoryHeader = (MEMORY_MANAGE_HEADER *)Ptr;
//
// adjust Ptr pointer to the next empty memory
//
@@ -2800,15 +2808,15 @@ CreateMemoryBlock (
//
// Set Bit Array initial address
//
- (*MemoryHeader)->BitArrayPtr = Ptr;
+ (*MemoryHeader)->BitArrayPtr = Ptr;
- (*MemoryHeader)->Next = NULL;
+ (*MemoryHeader)->Next = NULL;
//
// Memory block initial address
//
- Ptr = TempPtr;
- Ptr += EFI_PAGE_SIZE;
+ Ptr = TempPtr;
+ Ptr += EFI_PAGE_SIZE;
(*MemoryHeader)->MemoryBlockPtr = Ptr;
//
// set Memory block size
@@ -2833,15 +2841,15 @@ CreateMemoryBlock (
**/
EFI_STATUS
InitializeMemoryManagement (
- IN USB_UHC_DEV *UhcDev
+ IN USB_UHC_DEV *UhcDev
)
{
MEMORY_MANAGE_HEADER *MemoryHeader;
EFI_STATUS Status;
UINTN MemPages;
- MemPages = NORMAL_MEMORY_BLOCK_UNIT_IN_PAGES;
- Status = CreateMemoryBlock (UhcDev, &MemoryHeader, MemPages);
+ MemPages = NORMAL_MEMORY_BLOCK_UNIT_IN_PAGES;
+ Status = CreateMemoryBlock (UhcDev, &MemoryHeader, MemPages);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -2864,9 +2872,9 @@ InitializeMemoryManagement (
**/
EFI_STATUS
UhcAllocatePool (
- IN USB_UHC_DEV *UhcDev,
- OUT UINT8 **Pool,
- IN UINTN AllocSize
+ IN USB_UHC_DEV *UhcDev,
+ OUT UINT8 **Pool,
+ IN UINTN AllocSize
)
{
MEMORY_MANAGE_HEADER *MemoryHeader;
@@ -2891,16 +2899,16 @@ UhcAllocatePool (
Status = EFI_NOT_FOUND;
for (TempHeaderPtr = MemoryHeader; TempHeaderPtr != NULL; TempHeaderPtr = TempHeaderPtr->Next) {
-
Status = AllocMemInMemoryBlock (
- TempHeaderPtr,
- (VOID **) Pool,
- RealAllocSize / 32
- );
+ TempHeaderPtr,
+ (VOID **)Pool,
+ RealAllocSize / 32
+ );
if (!EFI_ERROR (Status)) {
return EFI_SUCCESS;
}
}
+
//
// There is no enough memory,
// Create a new Memory Block
@@ -2919,16 +2927,17 @@ UhcAllocatePool (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Link the new Memory Block to the Memory Header list
//
InsertMemoryHeaderToList (MemoryHeader, NewMemoryHeader);
Status = AllocMemInMemoryBlock (
- NewMemoryHeader,
- (VOID **) Pool,
- RealAllocSize / 32
- );
+ NewMemoryHeader,
+ (VOID **)Pool,
+ RealAllocSize / 32
+ );
return Status;
}
@@ -2950,21 +2959,21 @@ AllocMemInMemoryBlock (
IN UINTN NumberOfMemoryUnit
)
{
- UINTN TempBytePos;
- UINTN FoundBytePos;
- UINT8 Index;
- UINT8 FoundBitPos;
- UINT8 ByteValue;
- UINT8 BitValue;
- UINTN NumberOfZeros;
- UINTN Count;
+ UINTN TempBytePos;
+ UINTN FoundBytePos;
+ UINT8 Index;
+ UINT8 FoundBitPos;
+ UINT8 ByteValue;
+ UINT8 BitValue;
+ UINTN NumberOfZeros;
+ UINTN Count;
- FoundBytePos = 0;
- FoundBitPos = 0;
+ FoundBytePos = 0;
+ FoundBitPos = 0;
ByteValue = MemoryHeader->BitArrayPtr[0];
NumberOfZeros = 0;
- Index = 0;
+ Index = 0;
for (TempBytePos = 0; TempBytePos < MemoryHeader->BitArraySizeInBytes;) {
//
// Pop out BitValue from a byte in TempBytePos.
@@ -3001,10 +3010,11 @@ AllocMemInMemoryBlock (
//
// reset the (FoundBytePos,FoundBitPos) to the position of '1'
//
- FoundBytePos = TempBytePos;
- FoundBitPos = Index;
+ FoundBytePos = TempBytePos;
+ FoundBitPos = Index;
}
}
+
//
// right shift the byte
//
@@ -3020,14 +3030,15 @@ AllocMemInMemoryBlock (
// and reset the bit pos.
//
TempBytePos += 1;
- ByteValue = MemoryHeader->BitArrayPtr[TempBytePos];
- Index = 0;
+ ByteValue = MemoryHeader->BitArrayPtr[TempBytePos];
+ Index = 0;
}
}
if (NumberOfZeros < NumberOfMemoryUnit) {
return EFI_NOT_FOUND;
}
+
//
// Found enough free space.
//
@@ -3042,23 +3053,24 @@ AllocMemInMemoryBlock (
if ((MemoryHeader->BitArrayPtr[0] & BIT0) != 0) {
FoundBitPos += 1;
}
+
//
// Have the (FoundBytePos,FoundBitPos) make sense.
//
if (FoundBitPos > 7) {
FoundBytePos += 1;
- FoundBitPos -= 8;
+ FoundBitPos -= 8;
}
+
//
// Set the memory as allocated
//
for (TempBytePos = FoundBytePos, Index = FoundBitPos, Count = 0; Count < NumberOfMemoryUnit; Count++) {
-
- MemoryHeader->BitArrayPtr[TempBytePos] = (UINT8) (MemoryHeader->BitArrayPtr[TempBytePos] | (1 << Index));
+ MemoryHeader->BitArrayPtr[TempBytePos] = (UINT8)(MemoryHeader->BitArrayPtr[TempBytePos] | (1 << Index));
Index++;
if (Index == 8) {
TempBytePos += 1;
- Index = 0;
+ Index = 0;
}
}
@@ -3077,9 +3089,9 @@ AllocMemInMemoryBlock (
**/
VOID
UhcFreePool (
- IN USB_UHC_DEV *UhcDev,
- IN UINT8 *Pool,
- IN UINTN AllocSize
+ IN USB_UHC_DEV *UhcDev,
+ IN UINT8 *Pool,
+ IN UINTN AllocSize
)
{
MEMORY_MANAGE_HEADER *MemoryHeader;
@@ -3103,38 +3115,37 @@ UhcFreePool (
}
for (TempHeaderPtr = MemoryHeader; TempHeaderPtr != NULL;
- TempHeaderPtr = TempHeaderPtr->Next) {
-
+ TempHeaderPtr = TempHeaderPtr->Next)
+ {
if ((Pool >= TempHeaderPtr->MemoryBlockPtr) &&
((Pool + RealAllocSize) <= (TempHeaderPtr->MemoryBlockPtr +
- TempHeaderPtr->MemoryBlockSizeInBytes))) {
-
+ TempHeaderPtr->MemoryBlockSizeInBytes)))
+ {
//
// Pool is in the Memory Block area,
// find the start byte and bit in the bit array
//
- StartBytePos = ((Pool - TempHeaderPtr->MemoryBlockPtr) / 32) / 8;
- StartBitPos = (UINT8) (((Pool - TempHeaderPtr->MemoryBlockPtr) / 32) % 8);
+ StartBytePos = ((Pool - TempHeaderPtr->MemoryBlockPtr) / 32) / 8;
+ StartBitPos = (UINT8)(((Pool - TempHeaderPtr->MemoryBlockPtr) / 32) % 8);
//
// reset associated bits in bit array
//
for (Index = StartBytePos, Index2 = StartBitPos, Count = 0; Count < (RealAllocSize / 32); Count++) {
-
- TempHeaderPtr->BitArrayPtr[Index] = (UINT8) (TempHeaderPtr->BitArrayPtr[Index] ^ (1 << Index2));
+ TempHeaderPtr->BitArrayPtr[Index] = (UINT8)(TempHeaderPtr->BitArrayPtr[Index] ^ (1 << Index2));
Index2++;
if (Index2 == 8) {
Index += 1;
Index2 = 0;
}
}
+
//
// break the loop
//
break;
}
}
-
}
/**
@@ -3160,10 +3171,6 @@ InsertMemoryHeaderToList (
}
}
-
-
-
-
/**
Map address of request structure buffer.
@@ -3178,10 +3185,10 @@ InsertMemoryHeaderToList (
**/
EFI_STATUS
UhciMapUserRequest (
- IN USB_UHC_DEV *Uhc,
- IN OUT VOID *Request,
- OUT UINT8 **MappedAddr,
- OUT VOID **Map
+ IN USB_UHC_DEV *Uhc,
+ IN OUT VOID *Request,
+ OUT UINT8 **MappedAddr,
+ OUT VOID **Map
)
{
EFI_STATUS Status;
@@ -3199,7 +3206,7 @@ UhciMapUserRequest (
);
if (!EFI_ERROR (Status)) {
- *MappedAddr = (UINT8 *) (UINTN) PhyAddr;
+ *MappedAddr = (UINT8 *)(UINTN)PhyAddr;
}
return Status;
@@ -3237,61 +3244,60 @@ UhciMapUserData (
Status = EFI_SUCCESS;
switch (Direction) {
- case EfiUsbDataIn:
- //
- // BusMasterWrite means cpu read
- //
- *PktId = INPUT_PACKET_ID;
- Status = IoMmuMap (
- Uhc->IoMmu,
- EdkiiIoMmuOperationBusMasterWrite,
- Data,
- Len,
- &PhyAddr,
- Map
- );
-
- if (EFI_ERROR (Status)) {
- goto EXIT;
- }
+ case EfiUsbDataIn:
+ //
+ // BusMasterWrite means cpu read
+ //
+ *PktId = INPUT_PACKET_ID;
+ Status = IoMmuMap (
+ Uhc->IoMmu,
+ EdkiiIoMmuOperationBusMasterWrite,
+ Data,
+ Len,
+ &PhyAddr,
+ Map
+ );
+
+ if (EFI_ERROR (Status)) {
+ goto EXIT;
+ }
- *MappedAddr = (UINT8 *) (UINTN) PhyAddr;
- break;
-
- case EfiUsbDataOut:
- *PktId = OUTPUT_PACKET_ID;
- Status = IoMmuMap (
- Uhc->IoMmu,
- EdkiiIoMmuOperationBusMasterRead,
- Data,
- Len,
- &PhyAddr,
- Map
- );
+ *MappedAddr = (UINT8 *)(UINTN)PhyAddr;
+ break;
- if (EFI_ERROR (Status)) {
- goto EXIT;
- }
+ case EfiUsbDataOut:
+ *PktId = OUTPUT_PACKET_ID;
+ Status = IoMmuMap (
+ Uhc->IoMmu,
+ EdkiiIoMmuOperationBusMasterRead,
+ Data,
+ Len,
+ &PhyAddr,
+ Map
+ );
+
+ if (EFI_ERROR (Status)) {
+ goto EXIT;
+ }
- *MappedAddr = (UINT8 *) (UINTN) PhyAddr;
- break;
+ *MappedAddr = (UINT8 *)(UINTN)PhyAddr;
+ break;
- case EfiUsbNoData:
- if ((Len != NULL) && (*Len != 0)) {
- Status = EFI_INVALID_PARAMETER;
- goto EXIT;
- }
+ case EfiUsbNoData:
+ if ((Len != NULL) && (*Len != 0)) {
+ Status = EFI_INVALID_PARAMETER;
+ goto EXIT;
+ }
- *PktId = OUTPUT_PACKET_ID;
- *MappedAddr = NULL;
- *Map = NULL;
- break;
+ *PktId = OUTPUT_PACKET_ID;
+ *MappedAddr = NULL;
+ *Map = NULL;
+ break;
- default:
- Status = EFI_INVALID_PARAMETER;
+ default:
+ Status = EFI_INVALID_PARAMETER;
}
EXIT:
return Status;
}
-