summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Bus/Pci/UhciDxe
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Bus/Pci/UhciDxe')
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/ComponentName.c8
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c424
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h36
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c25
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.h23
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.c189
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.h125
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c90
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.h91
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c183
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.h150
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c103
-rw-r--r--MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.h72
13 files changed, 673 insertions, 846 deletions
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/ComponentName.c b/MdeModulePkg/Bus/Pci/UhciDxe/ComponentName.c
index 92e8bd151c..06e050a4f6 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/ComponentName.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/ComponentName.c
@@ -1,4 +1,5 @@
/** @file
+ UEFI Component Name(2) protocol implementation for UHCI driver.
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
@@ -9,13 +10,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- ComponentName.c
-
-Abstract:
-
-
**/
#include "Uhci.h"
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c
index 661f125149..d2178cd1d7 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c
@@ -1,5 +1,7 @@
/** @file
+ The UHCI driver model and HC protocol routines.
+
Copyright (c) 2004 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,17 +11,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- Uhci.c
-
-Abstract:
-
- The UHCI driver model and HC protocol routines.
-
-Revision History
-
-
**/
#include "Uhci.h"
@@ -27,17 +18,16 @@ Revision History
/**
Provides software reset for the USB host controller according to UEFI 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
- @param Attributes A bit mask of the reset operation to perform. See
- below for a list of the supported bit mask values.
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param Attributes A bit mask of the reset operation to perform. See
+ below for a list of the supported bit mask values.
- @return EFI_SUCCESS : The reset operation succeeded.
- @return EFI_INVALID_PARAMETER : Attributes is not valid.
- @return EFI_UNSUPPORTED : This type of reset is not currently supported
- @return EFI_DEVICE_ERROR : Other errors
+ @return EFI_SUCCESS The reset operation succeeded.
+ @return EFI_INVALID_PARAMETER Attributes is not valid.
+ @return EFI_UNSUPPORTED This type of reset is not currently supported.
+ @return EFI_DEVICE_ERROR Other errors.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2Reset (
@@ -112,15 +102,14 @@ ON_INVAILD_PARAMETER:
/**
Retrieves current state of the USB host controller according to UEFI 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
- @param State Variable to receive current device state
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param State Variable to receive current device state.
- @return EFI_SUCCESS : The state is returned
- @return EFI_INVALID_PARAMETER : State is not valid.
- @return EFI_DEVICE_ERROR : Other errors2006
+ @return EFI_SUCCESS The state is returned.
+ @return EFI_INVALID_PARAMETER State is not valid.
+ @return EFI_DEVICE_ERROR Other errors.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2GetState (
@@ -141,7 +130,7 @@ Uhci2GetState (
UsbCmd = UhciReadReg (Uhc->PciIo, USBCMD_OFFSET);
UsbSts = UhciReadReg (Uhc->PciIo, USBSTS_OFFSET);
- if (UsbCmd & USBCMD_EGSM) {
+ if ((UsbCmd & USBCMD_EGSM) !=0 ) {
*State = EfiUsbHcStateSuspend;
} else if ((UsbSts & USBSTS_HCH) != 0) {
@@ -158,16 +147,15 @@ Uhci2GetState (
/**
Sets the USB host controller to a specific state according to UEFI 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
- @param State Indicates the state of the host controller that will
- be set.
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param State Indicates the state of the host controller that will
+ be set.
- @return EFI_SUCCESS : Host controller was successfully placed in the state
- @return EFI_INVALID_PARAMETER : State is invalid.
- @return EFI_DEVICE_ERROR : Failed to set the state
+ @return EFI_SUCCESS Host controller was successfully placed in the state.
+ @return EFI_INVALID_PARAMETER State is invalid.
+ @return EFI_DEVICE_ERROR Failed to set the state.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2SetState (
@@ -265,19 +253,18 @@ ON_EXIT:
/**
Retrieves capabilities of USB host controller according to UEFI 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL instance
- @param MaxSpeed A pointer to the max speed USB host controller
- supports.
- @param PortNumber A pointer to the number of root hub ports.
- @param Is64BitCapable A pointer to an integer to show whether USB host
- controller supports 64-bit memory addressing.
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param MaxSpeed A pointer to the max speed USB host controller
+ supports.
+ @param PortNumber A pointer to the number of root hub ports.
+ @param Is64BitCapable A pointer to an integer to show whether USB host
+ controller supports 64-bit memory addressing.
- @return EFI_SUCCESS : capabilities were retrieved successfully.
- @return EFI_INVALID_PARAMETER : MaxSpeed or PortNumber or Is64BitCapable is NULL.
- @return EFI_DEVICE_ERROR : An error was encountered
+ @return EFI_SUCCESS capabilities were retrieved successfully.
+ @return EFI_INVALID_PARAMETER MaxSpeed or PortNumber or Is64BitCapable is NULL.
+ @return EFI_DEVICE_ERROR An error was encountered.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2GetCapability (
@@ -329,17 +316,16 @@ Uhci2GetCapability (
/**
Retrieves the current status of a USB root hub port according to UEFI 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL.
- @param PortNumber The port to get status
- @param PortStatus A pointer to the current port status bits and port
- status change bits.
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL.
+ @param PortNumber The port to get status.
+ @param PortStatus A pointer to the current port status bits and port
+ status change bits.
- @return EFI_SUCCESS : status of the USB root hub port was returned in PortStatus.
- @return EFI_INVALID_PARAMETER : PortNumber is invalid.
- @return EFI_DEVICE_ERROR : Can't read register
+ @return EFI_SUCCESS status of the USB root hub port was returned in PortStatus.
+ @return EFI_INVALID_PARAMETER PortNumber is invalid.
+ @return EFI_DEVICE_ERROR Can't read register.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2GetRootHubPortStatus (
@@ -368,24 +354,24 @@ Uhci2GetRootHubPortStatus (
PortSC = UhciReadReg (Uhc->PciIo, Offset);
- if (PortSC & USBPORTSC_CCS) {
+ if ((PortSC & USBPORTSC_CCS) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_CONNECTION;
}
- if (PortSC & USBPORTSC_PED) {
+ if ((PortSC & USBPORTSC_PED) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_ENABLE;
}
- if (PortSC & USBPORTSC_SUSP) {
+ if ((PortSC & USBPORTSC_SUSP) != 0) {
DEBUG ((EFI_D_INFO, "Uhci2GetRootHubPortStatus: port %d is suspended\n", PortNumber));
PortStatus->PortStatus |= USB_PORT_STAT_SUSPEND;
}
- if (PortSC & USBPORTSC_PR) {
+ if ((PortSC & USBPORTSC_PR) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_RESET;
}
- if (PortSC & USBPORTSC_LSDA) {
+ if ((PortSC & USBPORTSC_LSDA) != 0) {
PortStatus->PortStatus |= USB_PORT_STAT_LOW_SPEED;
}
@@ -394,11 +380,11 @@ Uhci2GetRootHubPortStatus (
//
PortStatus->PortStatus |= USB_PORT_STAT_OWNER;
- if (PortSC & USBPORTSC_CSC) {
+ if ((PortSC & USBPORTSC_CSC) != 0) {
PortStatus->PortChangeStatus |= USB_PORT_STAT_C_CONNECTION;
}
- if (PortSC & USBPORTSC_PEDC) {
+ if ((PortSC & USBPORTSC_PEDC) != 0) {
PortStatus->PortChangeStatus |= USB_PORT_STAT_C_ENABLE;
}
@@ -409,18 +395,17 @@ Uhci2GetRootHubPortStatus (
/**
Sets a feature for the specified root hub port according to UEFI 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL.
- @param PortNumber Specifies the root hub port whose feature is
- requested to be set.
- @param PortFeature Indicates the feature selector associated with the
- feature set request.
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL.
+ @param PortNumber Specifies the root hub port whose feature is
+ requested to be set.
+ @param PortFeature Indicates the feature selector associated with the
+ feature set request.
- @return EFI_SUCCESS : PortFeature was set for the root port
- @return EFI_INVALID_PARAMETER : PortNumber is invalid or PortFeature is invalid.
- @return EFI_DEVICE_ERROR : Can't read register
+ @return EFI_SUCCESS PortFeature was set for the root port.
+ @return EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.
+ @return EFI_DEVICE_ERROR Can't read register.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2SetRootHubPortFeature (
@@ -449,7 +434,7 @@ Uhci2SetRootHubPortFeature (
switch (PortFeature) {
case EfiUsbPortSuspend:
Command = UhciReadReg (Uhc->PciIo, USBCMD_OFFSET);
- if (!(Command & USBCMD_EGSM)) {
+ if ((Command & USBCMD_EGSM) == 0) {
//
// if global suspend is not active, can set port suspend
//
@@ -489,18 +474,17 @@ Uhci2SetRootHubPortFeature (
/**
Clears a feature for the specified root hub port according to Uefi 2.0 spec.
- @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
- @param PortNumber Specifies the root hub port whose feature is
- requested to be cleared.
- @param PortFeature Indicates the feature selector associated with the
- feature clear request.
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param PortNumber Specifies the root hub port whose feature is
+ requested to be cleared.
+ @param PortFeature Indicates the feature selector associated with the
+ feature clear request.
- @return EFI_SUCCESS : PortFeature was cleared for the USB root hub port
- @return EFI_INVALID_PARAMETER : PortNumber is invalid or PortFeature is invalid.
- @return EFI_DEVICE_ERROR : Can't read register
+ @return EFI_SUCCESS PortFeature was cleared for the USB root hub port.
+ @return EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.
+ @return EFI_DEVICE_ERROR Can't read register.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2ClearRootHubPortFeature (
@@ -591,27 +575,27 @@ Uhci2ClearRootHubPortFeature (
/**
- Submits control transfer to a target USB device accroding to UEFI 2.0 spec..
-
- This : A pointer to the EFI_USB2_HC_PROTOCOL instance.
- DeviceAddress : Target device address
- DeviceSpeed : Device speed
- MaximumPacketLength : Maximum packet size of the target endpoint
- Request : USB device request to send
- TransferDirection : Data direction of the Data stage in control transfer
- Data : Data to transmit/receive in data stage
- DataLength : Length of the data
- TimeOut : Maximum time, in microseconds, for transfer to complete.
- TransferResult : Variable to receive the transfer result
-
- @return EFI_SUCCESS : The control transfer was completed successfully.
- @return EFI_OUT_OF_RESOURCES : Failed due to lack of resource.
- @return EFI_INVALID_PARAMETER : Some parameters are invalid.
- @return EFI_TIMEOUT : Failed due to timeout.
- @return EFI_DEVICE_ERROR : Failed due to host controller or device error.
+ Submits control transfer to a target USB device accroding to UEFI 2.0 spec.
+
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param DeviceAddress Target device address.
+ @param DeviceSpeed Device speed.
+ @param MaximumPacketLength Maximum packet size of the target endpoint.
+ @param Request USB device request to send.
+ @param TransferDirection Data direction of the Data stage in control transfer.
+ @param Data Data to transmit/receive in data stage.
+ @param DataLength Length of the data.
+ @param TimeOut Maximum time, in microseconds, for transfer to complete.
+ @param Translator Transaction translator to be used by this device.
+ @param TransferResult Variable to receive the transfer result.
+
+ @return EFI_SUCCESS The control transfer was completed successfully.
+ @return EFI_OUT_OF_RESOURCES Failed due to lack of resource.
+ @return EFI_INVALID_PARAMETER Some parameters are invalid.
+ @return EFI_TIMEOUT Failed due to timeout.
+ @return EFI_DEVICE_ERROR Failed due to host controller or device error.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2ControlTransfer (
@@ -747,32 +731,30 @@ ON_EXIT:
}
-
/**
- Submits bulk transfer to a bulk endpoint of a USB device
-
- This : A pointer to the EFI_USB2_HC_PROTOCOL instance.
- DeviceAddress : Target device address
- EndPointAddress : Endpoint number and direction
- DeviceSpeed : Device speed
- MaximumPacketLength : Maximum packet size of the target endpoint
- DataBuffersNumber : Number of data buffers prepared for the transfer.
- Data : Array of pointers to the buffers of data
- DataLength : On input, size of the data buffer, On output,
- actually transferred data size.
- DataToggle : On input, data toggle to use; On output, next data toggle
- Translator : A pointr to the transaction translator data.
- TimeOut : Maximum time out, in microseconds
- TransferResult : Variable to receive transfer result
-
- @return EFI_SUCCESS : The bulk transfer was completed successfully.
- @return EFI_OUT_OF_RESOURCES : Failed due to lack of resource.
- @return EFI_INVALID_PARAMETER : Some parameters are invalid.
- @return EFI_TIMEOUT : Failed due to timeout.
- @return EFI_DEVICE_ERROR : Failed due to host controller or device error.
+ Submits bulk transfer to a bulk endpoint of a USB device.
+
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param DeviceAddress Target device address.
+ @param EndPointAddress Endpoint number and direction.
+ @param DeviceSpeed Device speed.
+ @param MaximumPacketLength Maximum packet size of the target endpoint.
+ @param DataBuffersNumber Number of data buffers prepared for the transfer.
+ @param Data Array of pointers to the buffers of data.
+ @param DataLength On input, size of the data buffer, On output,
+ actually transferred data size.
+ @param DataToggle On input, data toggle to use; On output, next data toggle.
+ @param TimeOut Maximum time out, in microseconds.
+ @param Translator A pointr to the transaction translator data.
+ @param TransferResult Variable to receive transfer result.
+
+ @return EFI_SUCCESS The bulk transfer was completed successfully.
+ @return EFI_OUT_OF_RESOURCES Failed due to lack of resource.
+ @return EFI_INVALID_PARAMETER Some parameters are invalid.
+ @return EFI_TIMEOUT Failed due to timeout.
+ @return EFI_DEVICE_ERROR Failed due to host controller or device error.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2BulkTransfer (
@@ -809,11 +791,7 @@ Uhci2BulkTransfer (
return EFI_INVALID_PARAMETER;
}
- if ((DataLength == NULL) || (Data == NULL) || (TransferResult == NULL)) {
- return EFI_INVALID_PARAMETER;
- }
-
- if (*DataLength == 0) {
+ if ((DataLength == NULL) || (*DataLength == 0) || (Data == NULL) || (TransferResult == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -845,7 +823,7 @@ Uhci2BulkTransfer (
// Map the source data buffer for bus master access,
// then create a list of TDs
//
- if (EndPointAddress & 0x80) {
+ if ((EndPointAddress & 0x80) != 0) {
Direction = EfiUsbDataIn;
} else {
Direction = EfiUsbDataOut;
@@ -906,27 +884,26 @@ ON_EXIT:
Submits an asynchronous interrupt transfer to an
interrupt endpoint of a USB device according to UEFI 2.0 spec.
- This : A pointer to the EFI_USB2_HC_PROTOCOL instance.
- DeviceAddress : Target device address
- EndPointAddress : Endpoint number and direction
- DeviceSpeed : Device speed
- MaximumPacketLength : Maximum packet size of the target endpoint
- IsNewTransfer : If TRUE, submit a new transfer, if FALSE cancel old transfer
- DataToggle : On input, data toggle to use; On output, next data toggle
- PollingInterval : Interrupt poll rate in milliseconds
- DataLength : On input, size of the data buffer, On output,
- actually transferred data size.
- Translator : A pointr to the transaction translator data.
- CallBackFunction : Function to call periodically
- Context : User context
-
- @return EFI_SUCCESS : Transfer was submitted
- @return EFI_INVALID_PARAMETER : Some parameters are invalid.
- @return EFI_OUT_OF_RESOURCES : Failed due to a lack of resources.
- @return EFI_DEVICE_ERROR : Can't read register
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param DeviceAddress Target device address.
+ @param EndPointAddress Endpoint number and direction.
+ @param DeviceSpeed Device speed.
+ @param MaximumPacketLength Maximum packet size of the target endpoint.
+ @param IsNewTransfer If TRUE, submit a new transfer, if FALSE cancel old transfer.
+ @param DataToggle On input, data toggle to use; On output, next data toggle.
+ @param PollingInterval Interrupt poll rate in milliseconds.
+ @param DataLength On input, size of the data buffer, On output,
+ actually transferred data size.
+ @param Translator A pointr to the transaction translator data.
+ @param CallBackFunction Function to call periodically.
+ @param Context User context.
+
+ @return EFI_SUCCESS Transfer was submitted.
+ @return EFI_INVALID_PARAMETER Some parameters are invalid.
+ @return EFI_OUT_OF_RESOURCES Failed due to a lack of resources.
+ @return EFI_DEVICE_ERROR Can't read register.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2AsyncInterruptTransfer (
@@ -1102,28 +1079,27 @@ FREE_DATA:
Submits synchronous interrupt transfer to an interrupt endpoint
of a USB device according to UEFI 2.0 spec.
- This : A pointer to the EFI_USB2_HC_PROTOCOL instance.
- DeviceAddress : Target device address
- EndPointAddress : Endpoint number and direction
- DeviceSpeed : Device speed
- MaximumPacketLength : Maximum packet size of the target endpoint
- DataBuffersNumber : Number of data buffers prepared for the transfer.
- Data : Array of pointers to the buffers of data
- DataLength : On input, size of the data buffer, On output,
- actually transferred data size.
- DataToggle : On input, data toggle to use; On output, next data toggle
- TimeOut : Maximum time out, in microseconds
- Translator : A pointr to the transaction translator data.
- TransferResult : Variable to receive transfer result
-
- @return EFI_SUCCESS : The transfer was completed successfully.
- @return EFI_OUT_OF_RESOURCES : Failed due to lack of resource.
- @return EFI_INVALID_PARAMETER : Some parameters are invalid.
- @return EFI_TIMEOUT : Failed due to timeout.
- @return EFI_DEVICE_ERROR : Failed due to host controller or device error.
+
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param DeviceAddress Target device address.
+ @param EndPointAddress Endpoint number and direction.
+ @param DeviceSpeed Device speed.
+ @param MaximumPacketLength Maximum packet size of the target endpoint.
+ @param Data Array of pointers to the buffers of data.
+ @param DataLength On input, size of the data buffer, On output,
+ actually transferred data size.
+ @param DataToggle On input, data toggle to use; On output, next data toggle.
+ @param TimeOut Maximum time out, in microseconds.
+ @param Translator A pointr to the transaction translator data.
+ @param TransferResult Variable to receive transfer result.
+
+ @return EFI_SUCCESS The transfer was completed successfully.
+ @return EFI_OUT_OF_RESOURCES Failed due to lack of resource.
+ @return EFI_INVALID_PARAMETER Some parameters are invalid.
+ @return EFI_TIMEOUT Failed due to timeout.
+ @return EFI_DEVICE_ERROR Failed due to host controller or device error.
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2SyncInterruptTransfer (
@@ -1254,22 +1230,21 @@ ON_EXIT:
/**
Submits isochronous transfer to a target USB device according to UEFI 2.0 spec.
- This : A pointer to the EFI_USB2_HC_PROTOCOL instance.
- DeviceAddress : Target device address
- EndPointAddress : Endpoint number and direction
- DeviceSpeed : Device speed
- MaximumPacketLength : Maximum packet size of the target endpoint
- DataBuffersNumber : Number of data buffers prepared for the transfer.
- Data : Array of pointers to the buffers of data
- DataLength : On input, size of the data buffer, On output,
- actually transferred data size.
- Translator : A pointr to the transaction translator data.
- TransferResult : Variable to receive transfer result
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param DeviceAddress Target device address.
+ @param EndPointAddress Endpoint number and direction.
+ @param DeviceSpeed Device speed.
+ @param MaximumPacketLength Maximum packet size of the target endpoint.
+ @param DataBuffersNumber Number of data buffers prepared for the transfer.
+ @param Data Array of pointers to the buffers of data.
+ @param DataLength On input, size of the data buffer, On output,
+ actually transferred data size.
+ @param Translator A pointr to the transaction translator data.
+ @param TransferResult Variable to receive transfer result.
@return EFI_UNSUPPORTED
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2IsochronousTransfer (
@@ -1292,21 +1267,22 @@ Uhci2IsochronousTransfer (
/**
Submits Async isochronous transfer to a target USB device according to UEFI 2.0 spec.
- This : A pointer to the EFI_USB2_HC_PROTOCOL instance.
- DeviceAddress : Target device address
- EndPointAddress : Endpoint number and direction
- DeviceSpeed : Device speed
- MaximumPacketLength : Maximum packet size of the target endpoint
- DataBuffersNumber : Number of data buffers prepared for the transfer.
- Data : Array of pointers to the buffers of data
- Translator : A pointr to the transaction translator data.
- IsochronousCallBack : Function to call when the transfer complete
- Context : Pass to the call back function as parameter
+ @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
+ @param DeviceAddress Target device address.
+ @param EndPointAddress Endpoint number and direction.
+ @param DeviceSpeed Device speed.
+ @param MaximumPacketLength Maximum packet size of the target endpoint.
+ @param DataBuffersNumber Number of data buffers prepared for the transfer.
+ @param Data Array of pointers to the buffers of data.
+ @param DataLength On input, size of the data buffer, On output,
+ actually transferred data size.
+ @param Translator A pointr to the transaction translator data.
+ @param IsochronousCallBack Function to call when the transfer complete.
+ @param Context Pass to the call back function as parameter.
@return EFI_UNSUPPORTED
**/
-STATIC
EFI_STATUS
EFIAPI
Uhci2AsyncIsochronousTransfer (
@@ -1326,29 +1302,22 @@ Uhci2AsyncIsochronousTransfer (
return EFI_UNSUPPORTED;
}
+/**
+ Entry point for EFI drivers.
+
+ @param ImageHandle EFI_HANDLE.
+ @param SystemTable EFI_SYSTEM_TABLE.
+
+ @retval EFI_SUCCESS Driver is successfully loaded.
+ @return Others Failed.
+
+**/
EFI_STATUS
EFIAPI
UhciDriverEntryPoint (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
-/*++
-
- Routine Description:
-
- Entry point for EFI drivers.
-
- Arguments:
-
- ImageHandle - EFI_HANDLE
- SystemTable - EFI_SYSTEM_TABLE
-
- Returns:
-
- EFI_SUCCESS : Driver is successfully loaded
- Others : Failed
-
---*/
{
return EfiLibInstallDriverBindingComponentName2 (
ImageHandle,
@@ -1366,11 +1335,11 @@ UhciDriverEntryPoint (
ControllerHandle that has UsbHcProtocol installed will be supported.
@param This Protocol instance pointer.
- @param Controller Handle of device to test
- @param RemainingDevicePath Not used
+ @param Controller Handle of device to test.
+ @param RemainingDevicePath Not used.
- @return EFI_SUCCESS : This driver supports this device.
- @return EFI_UNSUPPORTED : This driver does not support this device.
+ @return EFI_SUCCESS This driver supports this device.
+ @return EFI_UNSUPPORTED This driver does not support this device.
**/
EFI_STATUS
@@ -1440,14 +1409,14 @@ ON_EXIT:
/**
- Allocate and initialize the empty UHCI device
+ Allocate and initialize the empty UHCI device.
- @param PciIo The PCIIO to use
+ @param PciIo The PCIIO to use.
+ @param OriginalPciAttributes The original PCI attributes.
- @return Allocated UHCI device
+ @return Allocated UHCI device. If err, return NULL.
**/
-STATIC
USB_HC_DEV *
UhciAllocateDev (
IN EFI_PCI_IO_PROTOCOL *PciIo,
@@ -1517,14 +1486,13 @@ ON_ERROR:
/**
- Free the UHCI device and release its associated resources
+ Free the UHCI device and release its associated resources.
- @param Uhc The UHCI device to release
+ @param Uhc The UHCI device to release.
- @return None
+ @return None.
**/
-STATIC
VOID
UhciFreeDev (
IN USB_HC_DEV *Uhc
@@ -1538,7 +1506,7 @@ UhciFreeDev (
UsbHcFreeMemPool (Uhc->MemPool);
}
- if (Uhc->CtrlNameTable) {
+ if (Uhc->CtrlNameTable != NULL) {
FreeUnicodeStringTable (Uhc->CtrlNameTable);
}
@@ -1547,15 +1515,14 @@ UhciFreeDev (
/**
- Uninstall all Uhci Interface
+ Uninstall all Uhci Interface.
- @param Controller Controller handle
+ @param Controller Controller handle.
@param This Protocol instance pointer.
- @return VOID
+ @return None.
**/
-STATIC
VOID
UhciCleanDevUp (
IN EFI_HANDLE Controller,
@@ -1594,17 +1561,16 @@ UhciCleanDevUp (
/**
- Starting the Usb UHCI Driver
+ Starting the Usb UHCI Driver.
@param This Protocol instance pointer.
- @param Controller Handle of device to test
- @param RemainingDevicePath Not used
+ @param Controller Handle of device to test.
+ @param RemainingDevicePath Not used.
@retval EFI_SUCCESS This driver supports this device.
@retval EFI_UNSUPPORTED This driver does not support this device.
- @retval EFI_DEVICE_ERROR This driver cannot be started due to device Error
- EFI_OUT_OF_RESOURCES- Failed due to resource
- shortage
+ @retval EFI_DEVICE_ERROR This driver cannot be started due to device Error.
+ EFI_OUT_OF_RESOURCES- Failed due to resource shortage.
**/
EFI_STATUS
@@ -1784,8 +1750,8 @@ CLOSE_PCIIO:
created by this driver.
@param This Protocol instance pointer.
- @param Controller Handle of device to stop driver on
- @param NumberOfChildren Number of Children in the ChildHandleBuffer
+ @param Controller Handle of device to stop driver on.
+ @param NumberOfChildren Number of Children in the ChildHandleBuffer.
@param ChildHandleBuffer List of handles for the children we need to stop.
@return EFI_SUCCESS
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h
index 73f9fe2c0f..92c78333eb 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.h
@@ -1,5 +1,7 @@
/** @file
+ The definition for UHCI driver model and HC protocol routines.
+
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,21 +11,10 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- Uhci.h
-
-Abstract:
-
- The definition for UHCI driver model and HC protocol routines.
-
-Revision History
-
-
**/
-#ifndef _UHCI_H
-#define _UHCI_H
+#ifndef _EFI_UHCI_H_
+#define _EFI_UHCI_H_
#include <PiDxe.h>
@@ -51,7 +42,7 @@ typedef struct _USB_HC_DEV USB_HC_DEV;
#include "UhciSched.h"
#include "UhciDebug.h"
-enum {
+typedef enum {
UHC_1_MICROSECOND = 1,
UHC_1_MILLISECOND = 1000 * UHC_1_MICROSECOND,
UHC_1_SECOND = 1000 * UHC_1_MILLISECOND,
@@ -80,16 +71,17 @@ enum {
// and the unit of Async is 100us.
//
UHC_SYNC_POLL_INTERVAL = 50 * UHC_1_MICROSECOND,
- UHC_ASYNC_POLL_INTERVAL = 50 * 10000UL,
+ UHC_ASYNC_POLL_INTERVAL = 50 * 10000UL
+}UHC_TIMEOUT_EXPERIENCE_VALUE;
- //
- // UHC raises TPL to TPL_NOTIFY to serialize all its operations
- // to protect shared data structures.
- //
- UHCI_TPL = TPL_NOTIFY,
- USB_HC_DEV_SIGNATURE = EFI_SIGNATURE_32 ('u', 'h', 'c', 'i')
-};
+//
+// UHC raises TPL to TPL_NOTIFY to serialize all its operations
+// to protect shared data structures.
+//
+#define UHCI_TPL TPL_NOTIFY
+
+#define USB_HC_DEV_SIGNATURE EFI_SIGNATURE_32 ('u', 'h', 'c', 'i')
#pragma pack(1)
typedef struct {
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c
index 117bef2b96..caf2cc9cf2 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c
@@ -1,5 +1,7 @@
/** @file
+ This file provides the information dump support for Uhci when in debug mode.
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,17 +11,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciDebug.c
-
-Abstract:
-
- This file provides the information dump support for Uhci when in debug mode.
-
-Revision History
-
-
**/
#include "Uhci.h"
@@ -27,11 +18,11 @@ Revision History
/**
- Dump the content of QH structure
+ Dump the content of QH structure.
- @param QhSw Pointer to software QH structure
+ @param QhSw Pointer to software QH structure.
- @return None
+ @return None.
**/
VOID
@@ -51,10 +42,10 @@ UhciDumpQh (
/**
Dump the content of TD structure.
- @param TdSw Pointer to software TD structure
- @param IsCur Whether dump the whole list, or only dump the current TD
+ @param TdSw Pointer to software TD structure.
+ @param IsCur Whether dump the whole list, or only dump the current TD.
- @return None
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.h b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.h
index 5628e393f2..a55948c3e2 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.h
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.h
@@ -1,5 +1,7 @@
/** @file
+ This file contains the definination for host controller debug support routines
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,17 +11,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciDebug.h
-
-Abstract:
-
- This file contains the definination for host controller debug support routines
-
-Revision History
-
-
**/
#ifndef _EFI_UHCI_DEBUG_H_
@@ -27,11 +18,11 @@ Revision History
/**
- Dump the content of QH structure
+ Dump the content of QH structure.
- @param QhSw Pointer to software QH structure
+ @param QhSw Pointer to software QH structure.
- @return None
+ @return None.
**/
VOID
@@ -44,9 +35,9 @@ UhciDumpQh (
/**
Dump the content of TD structure.
- @param TdSw Pointer to software TD structure
+ @param TdSw Pointer to software TD structure.
- @return None
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.c
index 8804e91244..e002210466 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.c
@@ -1,5 +1,7 @@
/** @file
+ The UHCI register operation routines.
+
Copyright (c) 2007 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,32 +11,21 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciQueue.c
-
-Abstract:
-
- The UHCI register operation routines.
-
-Revision History
-
-
**/
#include "Uhci.h"
/**
- Map address of request structure buffer
+ Map address of request structure buffer.
- @param Uhc The UHCI device
- @param Request The user request buffer
- @param MappedAddr Mapped address of request
- @param Map Identificaion of this mapping to return
+ @param Uhc The UHCI device.
+ @param Request The user request buffer.
+ @param MappedAddr Mapped address of request.
+ @param Map Identificaion of this mapping to return.
- @return EFI_SUCCESS : Success
- @return EFI_DEVICE_ERROR : Fail to map the user request
+ @return EFI_SUCCESS Success.
+ @return EFI_DEVICE_ERROR Fail to map the user request.
**/
EFI_STATUS
@@ -68,18 +59,18 @@ UhciMapUserRequest (
/**
- Map address of user data buffer
+ Map address of user data buffer.
- @param Uhc The UHCI device
- @param Direction direction of the data transfer
- @param Data The user data buffer
- @param Len Length of the user data
- @param PktId Packet identificaion
- @param MappedAddr mapped address to return
- @param Map identificaion of this mapping to return
+ @param Uhc The UHCI device.
+ @param Direction Direction of the data transfer.
+ @param Data The user data buffer.
+ @param Len Length of the user data.
+ @param PktId Packet identificaion.
+ @param MappedAddr Mapped address to return.
+ @param Map Identificaion of this mapping to return.
- @return EFI_SUCCESS : Success
- @return EFI_DEVICE_ERROR : Fail to map the user data
+ @return EFI_SUCCESS Success.
+ @return EFI_DEVICE_ERROR Fail to map the user data.
**/
EFI_STATUS
@@ -159,14 +150,13 @@ EXIT:
}
-
/**
- Link the TD To QH
+ Link the TD To QH.
- @param Qh The queue head for the TD to link to
- @param Td The TD to link
+ @param Qh The queue head for the TD to link to.
+ @param Td The TD to link.
- @return VOID
+ @return None.
**/
VOID
@@ -183,12 +173,12 @@ UhciLinkTdToQh (
/**
- Unlink TD from the QH
+ Unlink TD from the QH.
- @param Qh The queue head to unlink from
- @param Td The TD to unlink
+ @param Qh The queue head to unlink from.
+ @param Td The TD to unlink.
- @return VOID
+ @return None.
**/
VOID
@@ -205,15 +195,14 @@ UhciUnlinkTdFromQh (
/**
- Append a new TD To the previous TD
+ Append a new TD To the previous TD.
- @param PrevTd Previous UHCI_TD_SW to be linked to
- @param ThisTd TD to link
+ @param PrevTd Previous UHCI_TD_SW to be linked to.
+ @param ThisTd TD to link.
- @return VOID
+ @return None.
**/
-STATIC
VOID
UhciAppendTd (
IN UHCI_TD_SW *PrevTd,
@@ -228,12 +217,12 @@ UhciAppendTd (
/**
- Delete a list of TDs
+ Delete a list of TDs.
- @param Uhc The UHCI device
- @param FirstTd TD link list head
+ @param Uhc The UHCI device.
+ @param FirstTd TD link list head.
- @return VOID
+ @return None.
**/
VOID
@@ -256,12 +245,12 @@ UhciDestoryTds (
/**
- Create an initialize a new queue head
+ Create an initialize a new queue head.
- @param Uhc The UHCI device
- @param Interval The polling interval for the queue
+ @param Uhc The UHCI device.
+ @param Interval The polling interval for the queue.
- @return The newly created queue header
+ @return The newly created queue header.
**/
UHCI_QH_SW *
@@ -289,14 +278,13 @@ UhciCreateQh (
/**
- Create and intialize a TD
+ Create and intialize a TD.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return The newly allocated and initialized TD
+ @return The newly allocated and initialized TD.
**/
-STATIC
UHCI_TD_SW *
UhciCreateTd (
IN USB_HC_DEV *Uhc
@@ -319,17 +307,16 @@ UhciCreateTd (
/**
- Create and initialize a TD for Setup Stage of a control transfer
+ Create and initialize a TD for Setup Stage of a control transfer.
- @param Uhc The UHCI device
- @param DevAddr Device address
- @param Request Device request
- @param IsLow Full speed or low speed
+ @param Uhc The UHCI device.
+ @param DevAddr Device address.
+ @param Request Device request.
+ @param IsLow Full speed or low speed.
- @return The created setup Td Pointer
+ @return The created setup Td Pointer.
**/
-STATIC
UHCI_TD_SW *
UhciCreateSetupTd (
IN USB_HC_DEV *Uhc,
@@ -368,21 +355,20 @@ UhciCreateSetupTd (
/**
- Create a TD for data
+ Create a TD for data.
- @param Uhc The UHCI device
- @param DevAddr Device address
- @param Endpoint Endpoint number
- @param DataPtr Data buffer
- @param Len Data length
- @param PktId Packet ID
- @param Toggle Data toggle value
- @param IsLow Full speed or low speed
+ @param Uhc The UHCI device.
+ @param DevAddr Device address.
+ @param Endpoint Endpoint number.
+ @param DataPtr Data buffer.
+ @param Len Data length.
+ @param PktId Packet ID.
+ @param Toggle Data toggle value.
+ @param IsLow Full speed or low speed.
- @return Data Td pointer if success, otherwise NUL
+ @return Data Td pointer if success, otherwise NULL.
**/
-STATIC
UHCI_TD_SW *
UhciCreateDataTd (
IN USB_HC_DEV *Uhc,
@@ -430,17 +416,16 @@ UhciCreateDataTd (
/**
- Create TD for the Status Stage of control transfer
+ Create TD for the Status Stage of control transfer.
- @param Uhc The UHCI device
- @param DevAddr Device address
- @param PktId Packet ID
- @param IsLow Full speed or low speed
+ @param Uhc The UHCI device.
+ @param DevAddr Device address.
+ @param PktId Packet ID.
+ @param IsLow Full speed or low speed.
- @return Status Td Pointer
+ @return Status Td Pointer.
**/
-STATIC
UHCI_TD_SW *
UhciCreateStatusTd (
IN USB_HC_DEV *Uhc,
@@ -479,18 +464,18 @@ UhciCreateStatusTd (
/**
- Create Tds list for Control Transfer
+ Create Tds list for Control Transfer.
- @param Uhc The UHCI device
- @param DeviceAddr The device address
- @param DataPktId Packet Identification of Data Tds
- @param Request A pointer to request structure buffer to transfer
- @param Data A pointer to user data buffer to transfer
- @param DataLen Length of user data to transfer
- @param MaxPacket Maximum packet size for control transfer
- @param IsLow Full speed or low speed
+ @param Uhc The UHCI device.
+ @param DeviceAddr The device address.
+ @param DataPktId Packet Identification of Data Tds.
+ @param Request A pointer to request structure buffer to transfer.
+ @param Data A pointer to user data buffer to transfer.
+ @param DataLen Length of user data to transfer.
+ @param MaxPacket Maximum packet size for control transfer.
+ @param IsLow Full speed or low speed.
- @return The Td list head for the control transfer
+ @return The Td list head for the control transfer.
**/
UHCI_TD_SW *
@@ -610,19 +595,19 @@ FREE_TD:
/**
- Create Tds list for Bulk/Interrupt Transfer
-
- @param Uhc USB_HC_DEV
- @param DevAddr Address of Device
- @param EndPoint Endpoint Number
- @param PktId Packet Identification of Data Tds
- @param Data A pointer to user data buffer to transfer
- @param DataLen Length of user data to transfer
- @param DataToggle Data Toggle Pointer
- @param MaxPacket Maximum packet size for Bulk/Interrupt transfer
- @param IsLow Is Low Speed Device
-
- @return The Tds list head for the bulk transfer
+ Create Tds list for Bulk/Interrupt Transfer.
+
+ @param Uhc USB_HC_DEV.
+ @param DevAddr Address of Device.
+ @param EndPoint Endpoint Number.
+ @param PktId Packet Identification of Data Tds.
+ @param Data A pointer to user data buffer to transfer.
+ @param DataLen Length of user data to transfer.
+ @param DataToggle Data Toggle Pointer.
+ @param MaxPacket Maximum packet size for Bulk/Interrupt transfer.
+ @param IsLow Is Low Speed Device.
+
+ @return The Tds list head for the bulk transfer.
**/
UHCI_TD_SW *
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.h b/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.h
index 1b60ad7ff9..0463f4bff6 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.h
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciQueue.h
@@ -1,5 +1,7 @@
/** @file
+ The definition for UHCI register operation routines.
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,17 +11,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciQueue.h
-
-Abstract:
-
- The definition for UHCI register operation routines.
-
-Revision History
-
-
**/
#ifndef _EFI_UHCI_QUEUE_H_
@@ -104,12 +95,12 @@ struct _UHCI_TD_SW {
/**
- Link the TD To QH
+ Link the TD To QH.
- @param Qh The queue head for the TD to link to
- @param Td The TD to link
+ @param Qh The queue head for the TD to link to.
+ @param Td The TD to link.
- @return VOID
+ @return None.
**/
VOID
@@ -121,12 +112,12 @@ UhciLinkTdToQh (
/**
- Unlink TD from the QH
+ Unlink TD from the QH.
- @param Qh The queue head to unlink from
- @param Td The TD to unlink
+ @param Qh The queue head to unlink from.
+ @param Td The TD to unlink.
- @return VOID
+ @return None.
**/
VOID
@@ -138,15 +129,15 @@ UhciUnlinkTdFromQh (
/**
- Map address of request structure buffer
+ Map address of request structure buffer.
- @param Uhc The UHCI device
- @param Request The user request buffer
- @param MappedAddr Mapped address of request
- @param Map Identificaion of this mapping to return
+ @param Uhc The UHCI device.
+ @param Request The user request buffer.
+ @param MappedAddr Mapped address of request.
+ @param Map Identificaion of this mapping to return.
- @return EFI_SUCCESS : Success
- @return EFI_DEVICE_ERROR : Fail to map the user request
+ @return EFI_SUCCESS Success.
+ @return EFI_DEVICE_ERROR Fail to map the user request.
**/
EFI_STATUS
@@ -160,18 +151,18 @@ UhciMapUserRequest (
/**
- Map address of user data buffer
+ Map address of user data buffer.
- @param Uhc The UHCI device
- @param Direction direction of the data transfer
- @param Data The user data buffer
- @param Len Length of the user data
- @param PktId Packet identificaion
- @param MappedAddr mapped address to return
- @param Map identificaion of this mapping to return
+ @param Uhc The UHCI device.
+ @param Direction Direction of the data transfer.
+ @param Data The user data buffer.
+ @param Len Length of the user data.
+ @param PktId Packet identificaion.
+ @param MappedAddr Mapped address to return.
+ @param Map Identificaion of this mapping to return.
- @return EFI_SUCCESS : Success
- @return EFI_DEVICE_ERROR : Fail to map the user data
+ @return EFI_SUCCESS Success.
+ @return EFI_DEVICE_ERROR Fail to map the user data.
**/
EFI_STATUS
@@ -188,12 +179,12 @@ UhciMapUserData (
/**
- Delete a list of TDs
+ Delete a list of TDs.
- @param Uhc The UHCI device
- @param FirstTd TD link list head
+ @param Uhc The UHCI device.
+ @param FirstTd TD link list head.
- @return VOID
+ @return None.
**/
VOID
@@ -205,12 +196,12 @@ UhciDestoryTds (
/**
- Create an initialize a new queue head
+ Create an initialize a new queue head.
- @param Uhc The UHCI device
- @param Interval The polling interval for the queue
+ @param Uhc The UHCI device.
+ @param Interval The polling interval for the queue.
- @return The newly created queue header
+ @return The newly created queue header.
**/
UHCI_QH_SW *
@@ -222,18 +213,18 @@ UhciCreateQh (
/**
- Create Tds list for Control Transfer
+ Create Tds list for Control Transfer.
- @param Uhc The UHCI device
- @param DeviceAddr The device address
- @param DataPktId Packet Identification of Data Tds
- @param Request A pointer to request structure buffer to transfer
- @param Data A pointer to user data buffer to transfer
- @param DataLen Length of user data to transfer
- @param MaxPacket Maximum packet size for control transfer
- @param IsLow Full speed or low speed
+ @param Uhc The UHCI device.
+ @param DeviceAddr The device address.
+ @param DataPktId Packet Identification of Data Tds.
+ @param Request A pointer to request structure buffer to transfer.
+ @param Data A pointer to user data buffer to transfer.
+ @param DataLen Length of user data to transfer.
+ @param MaxPacket Maximum packet size for control transfer.
+ @param IsLow Full speed or low speed.
- @return The Td list head for the control transfer
+ @return The Td list head for the control transfer.
**/
UHCI_TD_SW *
@@ -251,19 +242,19 @@ UhciCreateCtrlTds (
/**
- Create Tds list for Bulk/Interrupt Transfer
-
- @param Uhc USB_HC_DEV
- @param DevAddr Address of Device
- @param EndPoint Endpoint Number
- @param PktId Packet Identification of Data Tds
- @param Data A pointer to user data buffer to transfer
- @param DataLen Length of user data to transfer
- @param DataToggle Data Toggle Pointer
- @param MaxPacket Maximum packet size for Bulk/Interrupt transfer
- @param IsLow Is Low Speed Device
-
- @return The Tds list head for the bulk transfer
+ Create Tds list for Bulk/Interrupt Transfer.
+
+ @param Uhc USB_HC_DEV.
+ @param DevAddr Address of Device.
+ @param EndPoint Endpoint Number.
+ @param PktId Packet Identification of Data Tds.
+ @param Data A pointer to user data buffer to transfer.
+ @param DataLen Length of user data to transfer.
+ @param DataToggle Data Toggle Pointer.
+ @param MaxPacket Maximum packet size for Bulk/Interrupt transfer.
+ @param IsLow Is Low Speed Device.
+
+ @return The Tds list head for the bulk transfer.
**/
UHCI_TD_SW *
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c
index 0742f209d8..25a48f8374 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c
@@ -1,5 +1,7 @@
/** @file
+ The UHCI register operation routines.
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,29 +11,18 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciReg.c
-
-Abstract:
-
- The UHCI register operation routines.
-
-Revision History
-
-
**/
#include "Uhci.h"
/**
- Read a UHCI register
+ Read a UHCI register.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Offset Register offset to USB_BAR_INDEX
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Offset Register offset to USB_BAR_INDEX.
- @return Content of register
+ @return Content of register.
**/
UINT16
@@ -63,13 +54,13 @@ UhciReadReg (
/**
- Write data to UHCI register
+ Write data to UHCI register.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Offset Register offset to USB_BAR_INDEX
- @param Data Data to write
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Offset Register offset to USB_BAR_INDEX.
+ @param Data Data to write.
- @return VOID
+ @return None.
**/
VOID
@@ -97,13 +88,13 @@ UhciWriteReg (
/**
- Set a bit of the UHCI Register
+ Set a bit of the UHCI Register.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Offset Register offset to USB_BAR_INDEX
- @param Bit The bit to set
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Offset Register offset to USB_BAR_INDEX.
+ @param Bit The bit to set.
- @return None
+ @return None.
**/
VOID
@@ -122,13 +113,13 @@ UhciSetRegBit (
/**
- Clear a bit of the UHCI Register
+ Clear a bit of the UHCI Register.
- @param PciIo The PCI_IO protocol to access the PCI
- @param Offset Register offset to USB_BAR_INDEX
- @param Bit The bit to clear
+ @param PciIo The PCI_IO protocol to access the PCI.
+ @param Offset Register offset to USB_BAR_INDEX.
+ @param Bit The bit to clear.
- @return None
+ @return None.
**/
VOID
@@ -148,11 +139,11 @@ UhciClearRegBit (
/**
Clear all the interrutp status bits, these bits
- are Write-Clean
+ are Write-Clean.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return None
+ @return None.
**/
VOID
@@ -173,15 +164,14 @@ UhciAckAllInterrupt (
}
-
/**
- Stop the host controller
+ Stop the host controller.
- @param Uhc The UHCI device
- @param Timeout Max time allowed
+ @param Uhc The UHCI device.
+ @param Timeout Max time allowed.
- @retval EFI_SUCCESS The host controller is stopped
- @retval EFI_TIMEOUT Failed to stop the host controller
+ @retval EFI_SUCCESS The host controller is stopped.
+ @retval EFI_TIMEOUT Failed to stop the host controller.
**/
EFI_STATUS
@@ -214,12 +204,12 @@ UhciStopHc (
/**
- Check whether the host controller operates well
+ Check whether the host controller operates well.
- @param PciIo The PCI_IO protocol to use
+ @param PciIo The PCI_IO protocol to use.
- @retval TRUE Host controller is working
- @retval FALSE Host controller is halted or system error
+ @retval TRUE Host controller is working.
+ @retval FALSE Host controller is halted or system error.
**/
BOOLEAN
@@ -231,7 +221,7 @@ UhciIsHcWorking (
UsbSts = UhciReadReg (PciIo, USBSTS_OFFSET);
- if (UsbSts & (USBSTS_HCPE | USBSTS_HSE | USBSTS_HCH)) {
+ if ((UsbSts & (USBSTS_HCPE | USBSTS_HSE | USBSTS_HCH)) != 0) {
DEBUG ((EFI_D_ERROR, "UhciIsHcWorking: current USB state is %x\n", UsbSts));
return FALSE;
}
@@ -244,10 +234,10 @@ UhciIsHcWorking (
Set the UHCI frame list base address. It can't use
UhciWriteReg which access memory in UINT16.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Addr Address to set
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Addr Address to set.
- @return VOID
+ @return None.
**/
VOID
@@ -277,11 +267,11 @@ UhciSetFrameListBaseAddr (
/**
- Disable USB Emulation
+ Disable USB Emulation.
- @param PciIo The EFI_PCI_IO_PROTOCOL protocol to use
+ @param PciIo The EFI_PCI_IO_PROTOCOL protocol to use.
- @return VOID
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.h b/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.h
index 224f402c3c..8ba1cc23cd 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.h
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.h
@@ -1,5 +1,7 @@
/** @file
+ The definition for UHCI register operation routines.
+
Copyright (c) 2007 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,17 +11,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciReg.h
-
-Abstract:
-
- The definition for UHCI register operation routines.
-
-Revision History
-
-
**/
#ifndef _EFI_UHCI_REG_H_
@@ -27,7 +18,7 @@ Revision History
#define BIT(a) (1 << (a))
-enum {
+typedef enum {
UHCI_FRAME_NUM = 1024,
//
@@ -104,16 +95,16 @@ enum {
USBTD_NAK = BIT(3), // NAK is received
USBTD_CRC = BIT(2), // CRC/Time out error
USBTD_BITSTUFF = BIT(1) // Bit stuff error
-};
+}UHCI_REGISTER_OFFSET;
/**
- Read a UHCI register
+ Read a UHCI register.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Offset Register offset to USB_BAR_INDEX
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Offset Register offset to USB_BAR_INDEX.
- @return Content of register
+ @return Content of register.
**/
UINT16
@@ -126,13 +117,13 @@ UhciReadReg (
/**
- Write data to UHCI register
+ Write data to UHCI register.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Offset Register offset to USB_BAR_INDEX
- @param Data Data to write
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Offset Register offset to USB_BAR_INDEX.
+ @param Data Data to write.
- @return VOID
+ @return None.
**/
VOID
@@ -146,13 +137,13 @@ UhciWriteReg (
/**
- Set a bit of the UHCI Register
+ Set a bit of the UHCI Register.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Offset Register offset to USB_BAR_INDEX
- @param Bit The bit to set
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Offset Register offset to USB_BAR_INDEX.
+ @param Bit The bit to set.
- @return None
+ @return None.
**/
VOID
@@ -166,13 +157,13 @@ UhciSetRegBit (
/**
- Clear a bit of the UHCI Register
+ Clear a bit of the UHCI Register.
- @param PciIo The PCI_IO protocol to access the PCI
- @param Offset Register offset to USB_BAR_INDEX
- @param Bit The bit to clear
+ @param PciIo The PCI_IO protocol to access the PCI.
+ @param Offset Register offset to USB_BAR_INDEX.
+ @param Bit The bit to clear.
- @return None
+ @return None.
**/
VOID
@@ -186,11 +177,11 @@ UhciClearRegBit (
/**
Clear all the interrutp status bits, these bits
- are Write-Clean
+ are Write-Clean.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return None
+ @return None.
**/
VOID
@@ -201,13 +192,13 @@ UhciAckAllInterrupt (
/**
- Stop the host controller
+ Stop the host controller.
- @param Uhc The UHCI device
- @param Timeout Max time allowed
+ @param Uhc The UHCI device.
+ @param Timeout Max time allowed.
- @retval EFI_SUCCESS The host controller is stopped
- @retval EFI_TIMEOUT Failed to stop the host controller
+ @retval EFI_SUCCESS The host controller is stopped.
+ @retval EFI_TIMEOUT Failed to stop the host controller.
**/
EFI_STATUS
@@ -220,12 +211,12 @@ UhciStopHc (
/**
- Check whether the host controller operates well
+ Check whether the host controller operates well.
- @param PciIo The PCI_IO protocol to use
+ @param PciIo The PCI_IO protocol to use.
- @retval TRUE Host controller is working
- @retval FALSE Host controller is halted or system error
+ @retval TRUE Host controller is working.
+ @retval FALSE Host controller is halted or system error.
**/
BOOLEAN
@@ -239,10 +230,10 @@ UhciIsHcWorking (
Set the UHCI frame list base address. It can't use
UhciWriteReg which access memory in UINT16.
- @param PciIo The EFI_PCI_IO_PROTOCOL to use
- @param Addr Address to set
+ @param PciIo The EFI_PCI_IO_PROTOCOL to use.
+ @param Addr Address to set.
- @return VOID
+ @return None.
**/
VOID
@@ -254,11 +245,11 @@ UhciSetFrameListBaseAddr (
/**
- Disable USB Emulation
+ Disable USB Emulation.
- @param PciIo The EFI_PCI_IO_PROTOCOL protocol to use
+ @param PciIo The EFI_PCI_IO_PROTOCOL protocol to use.
- @return VOID
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c
index e6581d104c..7173d72123 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c
@@ -1,5 +1,7 @@
/** @file
+ The EHCI register operation routines.
+
Copyright (c) 2007 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,30 +11,19 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciSched.c
-
-Abstract:
-
- The EHCI register operation routines.
-
-Revision History
-
-
**/
#include "Uhci.h"
/**
- Create Frame List Structure
+ Create Frame List Structure.
- @param Uhc UHCI device
+ @param Uhc UHCI device.
- @retval EFI_OUT_OF_RESOURCES Can't allocate memory resources
- @retval EFI_UNSUPPORTED Map memory fail
- @retval EFI_SUCCESS Success
+ @retval EFI_OUT_OF_RESOURCES Can't allocate memory resources.
+ @retval EFI_UNSUPPORTED Map memory fail.
+ @retval EFI_SUCCESS Success.
**/
EFI_STATUS
@@ -155,11 +146,11 @@ ON_ERROR:
/**
- Destory FrameList buffer
+ Destory FrameList buffer.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return VOID
+ @return None.
**/
VOID
@@ -201,11 +192,11 @@ UhciDestoryFrameList (
/**
Convert the poll rate to the maxium 2^n that is smaller
- than Interval
+ than Interval.
- @param Interval The poll rate to convert
+ @param Interval The poll rate to convert.
- @return The converted poll rate
+ @return The converted poll rate.
**/
UINTN
@@ -235,10 +226,10 @@ UhciConvertPollRate (
Link a queue head (for asynchronous interrupt transfer) to
the frame list.
- @param FrameBase The base of the frame list
- @param Qh The queue head to link into
+ @param FrameBase The base of the frame list.
+ @param Qh The queue head to link into.
- @return None
+ @return None.
**/
VOID
@@ -340,10 +331,10 @@ UhciLinkQhToFrameList (
the precedence node, and pointer there next to QhSw's
next.
- @param FrameBase The base address of the frame list
- @param Qh The queue head to unlink
+ @param FrameBase The base address of the frame list.
+ @param Qh The queue head to unlink.
- @return None
+ @return None.
**/
VOID
@@ -398,17 +389,16 @@ UhciUnlinkQhFromFrameList (
/**
- Check TDs Results
+ Check TDs Results.
- @param Uhc This UHCI device
- @param Td UHCI_TD_SW to check
- @param IsLow Is Low Speed Device
- @param QhResult Return the result of this TD list
+ @param Uhc This UHCI device.
+ @param Td UHCI_TD_SW to check.
+ @param IsLow Is Low Speed Device.
+ @param QhResult Return the result of this TD list.
@return Whether the TD's result is finialized.
**/
-STATIC
BOOLEAN
UhciCheckTdStatus (
IN USB_HC_DEV *Uhc,
@@ -452,23 +442,23 @@ UhciCheckTdStatus (
// upper layer won't distinguish these condtions. So, only
// set these bits when TD is actually halted.
//
- if (State & USBTD_STALLED) {
- if (State & USBTD_BABBLE) {
+ if ((State & USBTD_STALLED) != 0) {
+ if ((State & USBTD_BABBLE) != 0) {
QhResult->Result |= EFI_USB_ERR_BABBLE;
} else if (TdHw->ErrorCount != 0) {
QhResult->Result |= EFI_USB_ERR_STALL;
}
- if (State & USBTD_CRC) {
+ if ((State & USBTD_CRC) != 0) {
QhResult->Result |= EFI_USB_ERR_CRC;
}
- if (State & USBTD_BUFFERR) {
+ if ((State & USBTD_BUFFERR) != 0) {
QhResult->Result |= EFI_USB_ERR_BUFFER;
}
- if (Td->TdHw.Status & USBTD_BITSTUFF) {
+ if ((Td->TdHw.Status & USBTD_BITSTUFF) != 0) {
QhResult->Result |= EFI_USB_ERR_BITSTUFF;
}
@@ -479,7 +469,7 @@ UhciCheckTdStatus (
Finished = TRUE;
goto ON_EXIT;
- } else if (State & USBTD_ACTIVE) {
+ } else if ((State & USBTD_ACTIVE) != 0) {
//
// The TD is still active, no need to check further.
//
@@ -540,18 +530,18 @@ ON_EXIT:
}
-
/**
- Check the result of the transfer
+ Check the result of the transfer.
- @param Uhc The UHCI device
- @param Td The first TDs of the transfer
- @param TimeOut TimeOut value in milliseconds
- @param IsLow Is Low Speed Device
- @param QhResult The variable to return result
+ @param Uhc The UHCI device.
+ @param Qh The queue head of the transfer.
+ @param Td The first TDs of the transfer.
+ @param TimeOut TimeOut value in milliseconds.
+ @param IsLow Is Low Speed Device.
+ @param QhResult The variable to return result.
- @retval EFI_SUCCESS The transfer finished with success
- @retval EFI_DEVICE_ERROR Transfer failed
+ @retval EFI_SUCCESS The transfer finished with success.
+ @retval EFI_DEVICE_ERROR Transfer failed.
**/
EFI_STATUS
@@ -606,16 +596,15 @@ UhciExecuteTransfer (
/**
- Update Async Request, QH and TDs
+ Update Async Request, QH and TDs.
- @param AsyncReq The UHCI asynchronous transfer to update
- @param Result Transfer reslut
- @param ErrTdPos Error TD Position
+ @param AsyncReq The UHCI asynchronous transfer to update.
+ @param Result Transfer reslut.
+ @param NextToggle The toggle of next data.
- @return VOID
+ @return None.
**/
-STATIC
VOID
UhciUpdateAsyncReq (
IN UHCI_ASYNC_REQUEST *AsyncReq,
@@ -653,23 +642,23 @@ UhciUpdateAsyncReq (
/**
- Create Async Request node, and Link to List
-
- @param Uhc The UHCI device
- @param Qh The queue head of the transfer
- @param FirstTd First TD of the transfer
- @param DevAddr Device Address
- @param EndPoint EndPoint Address
- @param DataLen Data length
- @param Interval Polling Interval when inserted to frame list
- @param Mapping Mapping value
- @param Data Data buffer, unmapped
- @param Callback Callback after interrupt transfeer
- @param Context Callback Context passed as function parameter
- @param IsLow Is Low Speed
-
- @retval EFI_SUCCESS An asynchronous transfer is created
- @retval EFI_INVALID_PARAMETER Paremeter is error
+ Create Async Request node, and Link to List.
+
+ @param Uhc The UHCI device.
+ @param Qh The queue head of the transfer.
+ @param FirstTd First TD of the transfer.
+ @param DevAddr Device Address.
+ @param EndPoint EndPoint Address.
+ @param DataLen Data length.
+ @param Interval Polling Interval when inserted to frame list.
+ @param Mapping Mapping value.
+ @param Data Data buffer, unmapped.
+ @param Callback Callback after interrupt transfeer.
+ @param Context Callback Context passed as function parameter.
+ @param IsLow Is Low Speed.
+
+ @retval EFI_SUCCESS An asynchronous transfer is created.
+ @retval EFI_INVALID_PARAMETER Paremeter is error.
@retval EFI_OUT_OF_RESOURCES Failed because of resource shortage.
**/
@@ -725,17 +714,15 @@ UhciCreateAsyncReq (
}
-
/**
- Free an asynchronous request's resource such as memory
+ Free an asynchronous request's resource such as memory.
- @param Uhc The UHCI device
- @param AsyncReq The asynchronous request to free
+ @param Uhc The UHCI device.
+ @param AsyncReq The asynchronous request to free.
- @return None
+ @return None.
**/
-STATIC
VOID
UhciFreeAsyncReq (
IN USB_HC_DEV *Uhc,
@@ -766,15 +753,14 @@ UhciFreeAsyncReq (
UHC's recycle list to wait for a while before release the memory.
Until then, hardware won't hold point to the request.
- @param Uhc The UHCI device
- @param AsyncReq The asynchronous request to free
+ @param Uhc The UHCI device.
+ @param AsyncReq The asynchronous request to free.
@param FreeNow If TRUE, free the resource immediately, otherwise
add the request to recycle wait list.
- @return None
+ @return None.
**/
-STATIC
VOID
UhciUnlinkAsyncReq (
IN USB_HC_DEV *Uhc,
@@ -802,16 +788,16 @@ UhciUnlinkAsyncReq (
/**
- Delete Async Interrupt QH and TDs
+ Delete Async Interrupt QH and TDs.
- @param Uhc The UHCI device
- @param DevAddr Device Address
- @param EndPoint EndPoint Address
- @param Toggle The next data toggle to use
+ @param Uhc The UHCI device.
+ @param DevAddr Device Address.
+ @param EndPoint EndPoint Address.
+ @param Toggle The next data toggle to use.
- @retval EFI_SUCCESS The request is deleted
- @retval EFI_INVALID_PARAMETER Paremeter is error
- @retval EFI_NOT_FOUND The asynchronous isn't found
+ @retval EFI_SUCCESS The request is deleted.
+ @retval EFI_INVALID_PARAMETER Paremeter is error.
+ @retval EFI_NOT_FOUND The asynchronous isn't found.
**/
EFI_STATUS
@@ -886,12 +872,11 @@ UhciRemoveAsyncReq (
existing for at least 50ms, far enough for the hardware
to clear its cache.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return None
+ @return None.
**/
-STATIC
VOID
UhciRecycleAsyncReq (
IN USB_HC_DEV *Uhc
@@ -917,9 +902,9 @@ UhciRecycleAsyncReq (
/**
Release all the asynchronous transfers on the lsit.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return VOID
+ @return None.
**/
VOID
@@ -952,12 +937,12 @@ UhciFreeAllAsyncReq (
/**
- Interrupt transfer periodic check handler
+ Interrupt transfer periodic check handler.
- @param Event The event of the time
- @param Context Context of the event, pointer to USB_HC_DEV
+ @param Event The event of the time.
+ @param Context Context of the event, pointer to USB_HC_DEV.
- @return VOID
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.h b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.h
index 61e459b976..d76d68212b 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.h
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.h
@@ -1,5 +1,7 @@
/** @file
+ The definition for EHCI register operation routines.
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,24 +11,13 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- UhciSched.h
-
-Abstract:
-
- The definition for EHCI register operation routines.
-
-Revision History
-
-
**/
#ifndef _EFI_UHCI_SCHED_H_
#define _EFI_UHCI_SCHED_H_
-enum {
+typedef enum {
UHCI_ASYNC_INT_SIGNATURE = EFI_SIGNATURE_32 ('u', 'h', 'c', 'a'),
//
@@ -40,7 +31,7 @@ enum {
EFI_USB_ERR_TIMEOUT | EFI_USB_ERR_BITSTUFF |
EFI_USB_ERR_SYSTEM
-};
+}UHCI_ERR_FAIL_MASK;
//
// Structure to return the result of UHCI QH execution.
@@ -91,36 +82,29 @@ struct _UHCI_ASYNC_REQUEST{
#define UHCI_ASYNC_INT_FROM_LINK(a) \
CR (a, UHCI_ASYNC_REQUEST, Link, UHCI_ASYNC_INT_SIGNATURE)
-EFI_STATUS
-UhciInitFrameList (
- IN USB_HC_DEV *Uhc
- )
-/*++
-
-Routine Description:
- Create Frame List Structure
-
-Arguments:
-
- Uhc - UHCI device
+/**
+ Create Frame List Structure.
-Returns:
+ @param Uhc The UHCI device.
- EFI_OUT_OF_RESOURCES - Can't allocate memory resources
- EFI_UNSUPPORTED - Map memory fail
- EFI_SUCCESS - Success
+ @return EFI_OUT_OF_RESOURCES Can't allocate memory resources.
+ @return EFI_UNSUPPORTED Map memory fail.
+ @return EFI_SUCCESS Success.
---*/
+**/
+EFI_STATUS
+UhciInitFrameList (
+ IN USB_HC_DEV *Uhc
+ )
;
-
/**
- Destory FrameList buffer
+ Destory FrameList buffer.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return VOID
+ @return None.
**/
VOID
@@ -132,11 +116,11 @@ UhciDestoryFrameList (
/**
Convert the poll rate to the maxium 2^n that is smaller
- than Interval
+ than Interval.
- @param Interval The poll rate to convert
+ @param Interval The poll rate to convert.
- @return The converted poll rate
+ @return The converted poll rate.
**/
UINTN
@@ -150,10 +134,10 @@ UhciConvertPollRate (
Link a queue head (for asynchronous interrupt transfer) to
the frame list.
- @param FrameBase The base of the frame list
- @param Qh The queue head to link into
+ @param FrameBase The base of the frame list.
+ @param Qh The queue head to link into.
- @return None
+ @return None.
**/
VOID
@@ -169,10 +153,10 @@ UhciLinkQhToFrameList (
the precedence node, and pointer there next to QhSw's
next.
- @param FrameBase The base address of the frame list
- @param Qh The queue head to unlink
+ @param FrameBase The base address of the frame list.
+ @param Qh The queue head to unlink.
- @return None
+ @return None.
**/
VOID
@@ -184,16 +168,17 @@ UhciUnlinkQhFromFrameList (
/**
- Check the result of the transfer
+ Check the result of the transfer.
- @param Uhc The UHCI device
- @param Td The first TDs of the transfer
- @param TimeOut TimeOut value in milliseconds
- @param IsLow Is Low Speed Device
- @param QhResult The variable to return result
+ @param Uhc The UHCI device.
+ @param Qh The queue head of the transfer.
+ @param Td The first TDs of the transfer.
+ @param TimeOut TimeOut value in milliseconds.
+ @param IsLow Is Low Speed Device.
+ @param QhResult The variable to return result.
- @retval EFI_SUCCESS The transfer finished with success
- @retval EFI_DEVICE_ERROR Transfer failed
+ @retval EFI_SUCCESS The transfer finished with success.
+ @retval EFI_DEVICE_ERROR Transfer failed.
**/
EFI_STATUS
@@ -209,24 +194,23 @@ UhciExecuteTransfer (
/**
- Create Async Request node, and Link to List
-
- @param Uhc The UHCI device
- @param Qh The queue head of the transfer
- @param FirstTd First TD of the transfer
- @param DevAddr Device Address
- @param EndPoint EndPoint Address
- @param Toggle Data Toggle
- @param DataLen Data length
- @param Interval Polling Interval when inserted to frame list
- @param Mapping Mapping value
- @param Data Data buffer, unmapped
- @param Callback Callback after interrupt transfeer
- @param Context Callback Context passed as function parameter
- @param IsLow Is Low Speed
-
- @retval EFI_SUCCESS An asynchronous transfer is created
- @retval EFI_INVALID_PARAMETER Paremeter is error
+ Create Async Request node, and Link to List.
+
+ @param Uhc The UHCI device.
+ @param Qh The queue head of the transfer.
+ @param FirstTd First TD of the transfer.
+ @param DevAddr Device Address.
+ @param EndPoint EndPoint Address.
+ @param DataLen Data length.
+ @param Interval Polling Interval when inserted to frame list.
+ @param Mapping Mapping value.
+ @param Data Data buffer, unmapped.
+ @param Callback Callback after interrupt transfeer.
+ @param Context Callback Context passed as function parameter.
+ @param IsLow Is Low Speed.
+
+ @retval EFI_SUCCESS An asynchronous transfer is created.
+ @retval EFI_INVALID_PARAMETER Paremeter is error.
@retval EFI_OUT_OF_RESOURCES Failed because of resource shortage.
**/
@@ -249,16 +233,16 @@ UhciCreateAsyncReq (
/**
- Delete Async Interrupt QH and TDs
+ Delete Async Interrupt QH and TDs.
- @param Uhc The UHCI device
- @param DevAddr Device Address
- @param EndPoint EndPoint Address
- @param Toggle The next data toggle to use
+ @param Uhc The UHCI device.
+ @param DevAddr Device Address.
+ @param EndPoint EndPoint Address.
+ @param Toggle The next data toggle to use.
- @retval EFI_SUCCESS The request is deleted
- @retval EFI_INVALID_PARAMETER Paremeter is error
- @retval EFI_NOT_FOUND The asynchronous isn't found
+ @retval EFI_SUCCESS The request is deleted.
+ @retval EFI_INVALID_PARAMETER Paremeter is error.
+ @retval EFI_NOT_FOUND The asynchronous isn't found.
**/
EFI_STATUS
@@ -274,9 +258,9 @@ UhciRemoveAsyncReq (
/**
Release all the asynchronous transfers on the lsit.
- @param Uhc The UHCI device
+ @param Uhc The UHCI device.
- @return VOID
+ @return None.
**/
VOID
@@ -287,12 +271,12 @@ UhciFreeAllAsyncReq (
/**
- Interrupt transfer periodic check handler
+ Interrupt transfer periodic check handler.
- @param Event The event of the time
- @param Context Context of the event, pointer to USB_HC_DEV
+ @param Event The event of the time.
+ @param Context Context of the event, pointer to USB_HC_DEV.
- @return VOID
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c
index c7881ecf35..7cc99ba527 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c
@@ -1,5 +1,7 @@
/** @file
+ The routine procedure for uhci memory allocate/free.
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,30 +11,20 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- EhciMem.c
-
-Abstract:
-
-
-Revision History
-
**/
#include "Uhci.h"
/**
- Allocate a block of memory to be used by the buffer pool
+ Allocate a block of memory to be used by the buffer pool.
- @param Pool The buffer pool to allocate memory for
- @param Pages How many pages to allocate
+ @param Pool The buffer pool to allocate memory for.
+ @param Pages How many pages to allocate.
- @return The allocated memory block or NULL if failed
+ @return The allocated memory block or NULL if failed.
**/
-STATIC
USBHC_MEM_BLOCK *
UsbHcAllocMemBlock (
IN USBHC_MEM_POOL *Pool,
@@ -126,15 +118,14 @@ FREE_BITARRAY:
/**
- Free the memory block from the memory pool
+ Free the memory block from the memory pool.
- @param Pool The memory pool to free the block from
- @param Block The memory block to free
+ @param Pool The memory pool to free the block from.
+ @param Block The memory block to free.
- @return VOID
+ @return None.
**/
-STATIC
VOID
UsbHcFreeMemBlock (
IN USBHC_MEM_POOL *Pool,
@@ -159,17 +150,15 @@ UsbHcFreeMemBlock (
/**
- Alloc some memory from the block
+ Alloc some memory from the block.
- @param Block The memory block to allocate memory from
- @param Mem The variable to store the memory allocated
- @param Units Number of memory units to allocate
+ @param Block The memory block to allocate memory from.
+ @param Units Number of memory units to allocate.
- @return EFI_SUCCESS : The needed memory is allocated
- @return EFI_NOT_FOUND : Can't find the free memory
+ @return EFI_SUCCESS The needed memory is allocated.
+ @return EFI_NOT_FOUND Can't find the free memory.
**/
-STATIC
VOID *
UsbHcAllocMemFromBlock (
IN USBHC_MEM_BLOCK *Block,
@@ -235,15 +224,14 @@ UsbHcAllocMemFromBlock (
/**
- Insert the memory block to the pool's list of the blocks
+ Insert the memory block to the pool's list of the blocks.
- @param Head The head of the memory pool's block list
- @param Block The memory block to insert
+ @param Head The head of the memory pool's block list.
+ @param Block The memory block to insert.
- @return VOID
+ @return None.
**/
-STATIC
VOID
UsbHcInsertMemBlockToPool (
IN USBHC_MEM_BLOCK *Head,
@@ -259,13 +247,12 @@ UsbHcInsertMemBlockToPool (
/**
Is the memory block empty?
- @param Block The memory block to check
+ @param Block The memory block to check.
- @return TRUE : The memory block is empty
- @return FALSE : The memory block isn't empty
+ @return TRUE The memory block is empty.
+ @return FALSE The memory block isn't empty.
**/
-STATIC
BOOLEAN
UsbHcIsMemBlockEmpty (
IN USBHC_MEM_BLOCK *Block
@@ -284,15 +271,14 @@ UsbHcIsMemBlockEmpty (
/**
- Unlink the memory block from the pool's list
+ Unlink the memory block from the pool's list.
- @param Head The block list head of the memory's pool
+ @param Head The block list head of the memory's pool.
@param BlockToUnlink The memory block to unlink.
- @return VOID
+ @return None.
**/
-STATIC
VOID
UsbHcUnlinkMemBlock (
IN USBHC_MEM_BLOCK *Head,
@@ -314,16 +300,15 @@ UsbHcUnlinkMemBlock (
/**
- Initialize the memory management pool for the host controller
+ Initialize the memory management pool for the host controller.
- @param Pool The USB memory pool to initialize
- @param PciIo The PciIo that can be used to access the host controller
- @param Check4G Whether the host controller requires allocated memory
- from one 4G address space.
- @param Which4G The 4G memory area each memory allocated should be from
+ @param PciIo The PciIo that can be used to access the host controller.
+ @param Check4G Whether the host controller requires allocated memory
+ from one 4G address space.
+ @param Which4G The 4G memory area each memory allocated should be from.
- @return EFI_SUCCESS : The memory pool is initialized
- @return EFI_OUT_OF_RESOURCE : Fail to init the memory pool
+ @return EFI_SUCCESS The memory pool is initialized.
+ @return EFI_OUT_OF_RESOURCE Fail to init the memory pool.
**/
USBHC_MEM_POOL *
@@ -356,12 +341,12 @@ UsbHcInitMemPool (
/**
- Release the memory management pool
+ Release the memory management pool.
- @param Pool The USB memory pool to free
+ @param Pool The USB memory pool to free.
- @return EFI_SUCCESS : The memory pool is freed
- @return EFI_DEVICE_ERROR : Failed to free the memory pool
+ @return EFI_SUCCESS The memory pool is freed.
+ @return EFI_DEVICE_ERROR Failed to free the memory pool.
**/
EFI_STATUS
@@ -393,10 +378,10 @@ UsbHcFreeMemPool (
Allocate some memory from the host controller's memory pool
which can be used to communicate with host controller.
- @param Pool The host controller's memory pool
- @param Size Size of the memory to allocate
+ @param Pool The host controller's memory pool.
+ @param Size Size of the memory to allocate.
- @return The allocated memory or NULL
+ @return The allocated memory or NULL.
**/
VOID *
@@ -467,13 +452,13 @@ UsbHcAllocateMem (
/**
- Free the allocated memory back to the memory pool
+ Free the allocated memory back to the memory pool.
- @param Pool The memory pool of the host controller
- @param Mem The memory to free
- @param Size The size of the memory to free
+ @param Pool The memory pool of the host controller.
+ @param Mem The memory to free.
+ @param Size The size of the memory to free.
- @return VOID
+ @return None.
**/
VOID
diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.h b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.h
index 4df144be84..80b2aa382b 100644
--- a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.h
+++ b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.h
@@ -1,5 +1,7 @@
/** @file
+ This file contains the definination for host controller memory management routines
+
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -9,16 +11,6 @@ http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-Module Name:
-
- EhciMem.h
-
-Abstract:
-
- This file contains the definination for host controller memory management routines
-
-Revision History
-
**/
#ifndef _EFI_EHCI_MEM_H_
@@ -58,12 +50,12 @@ typedef struct _USBHC_MEM_POOL {
USBHC_MEM_BLOCK *Head;
} USBHC_MEM_POOL;
-enum {
+typedef enum {
USBHC_MEM_UNIT = 64, // Memory allocation unit, must be 2^n, n>4
USBHC_MEM_UNIT_MASK = USBHC_MEM_UNIT - 1,
USBHC_MEM_DEFAULT_PAGES = 16
-};
+}UHCI_MEM_UNIT_DATA;
#define USBHC_MEM_ROUND(Len) (((Len) + USBHC_MEM_UNIT_MASK) & (~USBHC_MEM_UNIT_MASK))
@@ -80,44 +72,34 @@ enum {
} while (0)
+/**
+ Initialize the memory management pool for the host controller.
+
+ @param PciIo The PciIo that can be used to access the host controller.
+ @param Check4G Whether the host controller requires allocated memory
+ from one 4G address space.
+ @param Which4G The 4G memory area each memory allocated should be from.
+ @retval EFI_SUCCESS The memory pool is initialized.
+ @retval EFI_OUT_OF_RESOURCE Fail to init the memory pool.
+
+**/
USBHC_MEM_POOL *
UsbHcInitMemPool (
IN EFI_PCI_IO_PROTOCOL *PciIo,
IN BOOLEAN Check4G,
IN UINT32 Which4G
)
-/*++
-
-Routine Description:
-
- Initialize the memory management pool for the host controller
-
-Arguments:
-
- Pool - The USB memory pool to initialize
- PciIo - The PciIo that can be used to access the host controller
- Check4G - Whether the host controller requires allocated memory
- from one 4G address space.
- Which4G - The 4G memory area each memory allocated should be from
-
-Returns:
-
- EFI_SUCCESS : The memory pool is initialized
- EFI_OUT_OF_RESOURCE : Fail to init the memory pool
-
---*/
;
-
/**
- Release the memory management pool
+ Release the memory management pool.
- @param Pool The USB memory pool to free
+ @param Pool The USB memory pool to free.
- @return EFI_SUCCESS : The memory pool is freed
- @return EFI_DEVICE_ERROR : Failed to free the memory pool
+ @return EFI_SUCCESS The memory pool is freed.
+ @return EFI_DEVICE_ERROR Failed to free the memory pool.
**/
EFI_STATUS
@@ -132,10 +114,10 @@ UsbHcFreeMemPool (
Allocate some memory from the host controller's memory pool
which can be used to communicate with host controller.
- @param Pool The host controller's memory pool
- @param Size Size of the memory to allocate
+ @param Pool The host controller's memory pool.
+ @param Size Size of the memory to allocate.
- @return The allocated memory or NULL
+ @return The allocated memory or NULL.
**/
VOID *
@@ -148,13 +130,13 @@ UsbHcAllocateMem (
/**
- Free the allocated memory back to the memory pool
+ Free the allocated memory back to the memory pool.
- @param Pool The memory pool of the host controller
- @param Mem The memory to free
- @param Size The size of the memory to free
+ @param Pool The memory pool of the host controller.
+ @param Mem The memory to free.
+ @param Size The size of the memory to free.
- @return VOID
+ @return None.
**/
VOID