2. Use ZeroMem to replace gBS->SetMem;
3. Remove marked code;
4. Add IsHub judgement in UsbPortReset function to following EFI1.1 spec;
5. Add brackets for macro definition
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1740
6f19259b-4bc3-4df7-8a09-
765794883524
13 files changed:
\r
#include "Ehci.h"\r
\r
\r
#include "Ehci.h"\r
\r
-UINTN gEHCDebugLevel = EFI_D_INFO;\r
-UINTN gEHCErrorLevel = EFI_D_ERROR;\r
+\r
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN gEHCDebugLevel = EFI_D_INFO;\r
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN gEHCErrorLevel = EFI_D_ERROR;\r
+\r
//\r
Status = SetFrameListBaseAddr (\r
HcDev, \r
//\r
Status = SetFrameListBaseAddr (\r
HcDev, \r
- GET_0B_TO_31B (HcDev->PeriodicFrameListBuffer)\r
+ (UINT32)GET_0B_TO_31B (HcDev->PeriodicFrameListBuffer)\r
);\r
if (EFI_ERROR (Status)) {\r
Status = EFI_DEVICE_ERROR;\r
);\r
if (EFI_ERROR (Status)) {\r
Status = EFI_DEVICE_ERROR;\r
//\r
#include <IndustryStandard/pci22.h>\r
\r
//\r
#include <IndustryStandard/pci22.h>\r
\r
-extern UINTN gEHCDebugLevel;\r
-extern UINTN gEHCErrorLevel;\r
+\r
+GLOBAL_REMOVE_IF_UNREFERENCED extern UINTN gEHCDebugLevel;\r
+GLOBAL_REMOVE_IF_UNREFERENCED extern UINTN gEHCErrorLevel;\r
+\r
\r
#define STALL_1_MACRO_SECOND 1\r
#define STALL_1_MILLI_SECOND 1000 * STALL_1_MACRO_SECOND\r
\r
#define STALL_1_MACRO_SECOND 1\r
#define STALL_1_MILLI_SECOND 1000 * STALL_1_MACRO_SECOND\r
#define OUTPUT_PACKET_ID 0xE1\r
#define ERROR_PACKET_ID 0x55\r
\r
#define OUTPUT_PACKET_ID 0xE1\r
#define ERROR_PACKET_ID 0x55\r
\r
-#define bit(a) 1 << (a)\r
+#define bit(a) (1 << (a))\r
+\r
+#define GET_0B_TO_31B(Addr) (((UINTN) Addr) & (0xffffffff))\r
+#define GET_32B_TO_63B(Addr) ((UINTN)RShiftU64((UINTN) Addr, 32) & (0xffffffff))\r
-#define GET_0B_TO_31B(Addr) (UINT32) (UINTN) (Addr)\r
-#define GET_32B_TO_63B(Addr) (UINT32) (RShiftU64(((UINT64) (UINTN) (Addr)), 32) & 0xffffffff)\r
\r
//\r
// Ehci Data and Ctrl Structures\r
\r
//\r
// Ehci Data and Ctrl Structures\r
//\r
// Init fields in Qh\r
//\r
//\r
// Init fields in Qh\r
//\r
- gBS->SetMem (*QhPtrPtr, sizeof (EHCI_QH_ENTITY), 0);\r
+ ZeroMem (*QhPtrPtr, sizeof (EHCI_QH_ENTITY));\r
\r
//\r
// Software field\r
\r
//\r
// Software field\r
//\r
// Init fields in Qtd\r
//\r
//\r
// Init fields in Qtd\r
//\r
- gBS->SetMem (*QtdPtrPtr, sizeof (EHCI_QTD_ENTITY), 0);\r
+\r
+ ZeroMem (*QtdPtrPtr, sizeof (EHCI_QTD_ENTITY));\r
\r
//\r
// Software field\r
\r
//\r
// Software field\r
Value = NULL;\r
\r
if (!HwQtdPtr->AltNextQtdTerminate) {\r
Value = NULL;\r
\r
if (!HwQtdPtr->AltNextQtdTerminate) {\r
- Value = (EHCI_QTD_HW *) (UINTN) GET_0B_TO_31B (HwQtdPtr->AltNextQtdPointer << 5);\r
+ Value = (EHCI_QTD_HW *) GET_0B_TO_31B (HwQtdPtr->AltNextQtdPointer << 5);\r
Value = NULL;\r
\r
if (!HwQtdPtr->NextQtdTerminate) {\r
Value = NULL;\r
\r
if (!HwQtdPtr->NextQtdTerminate) {\r
- Value = (EHCI_QTD_HW *) (UINTN) GET_0B_TO_31B (HwQtdPtr->NextQtdPointer << 5);\r
+ Value = (EHCI_QTD_HW *) GET_0B_TO_31B (HwQtdPtr->NextQtdPointer << 5);\r
//\r
// Not Null FrameList\r
//\r
//\r
// Not Null FrameList\r
//\r
- FindQhHwPtr = (EHCI_QH_HW *) (UINTN) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);\r
+ FindQhHwPtr = (EHCI_QH_HW *) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);\r
FindQhPtr = (EHCI_QH_ENTITY *) GET_QH_ENTITY_ADDR (FindQhHwPtr);\r
//\r
// FindQh is Left/Right to Qh\r
FindQhPtr = (EHCI_QH_ENTITY *) GET_QH_ENTITY_ADDR (FindQhHwPtr);\r
//\r
// FindQh is Left/Right to Qh\r
//\r
if (NULL != FindQhPtr->Next) {\r
FindQhPtr->Next->Prev = QhPtr;\r
//\r
if (NULL != FindQhPtr->Next) {\r
FindQhPtr->Next->Prev = QhPtr;\r
- QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(FindQhPtr->Next->Qh)) >> 5);\r
+ QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(FindQhPtr->Next->Qh) >> 5);\r
QhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
QhPtr->Qh.QhTerminate = FALSE;\r
}\r
\r
QhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
QhPtr->Qh.QhTerminate = FALSE;\r
}\r
\r
- FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN)&(QhPtr->Qh)) >> 5);\r
+ FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FindQhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Qh.QhTerminate = FALSE;\r
\r
FindQhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Qh.QhTerminate = FALSE;\r
\r
//\r
// Qh is the First one in Frame[0] List\r
//\r
//\r
// Qh is the First one in Frame[0] List\r
//\r
- FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
} else {\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
} else {\r
// Qh is not the First one in Frame[0] List\r
//\r
FindQhPtr->Prev->Next = QhPtr;\r
// Qh is not the First one in Frame[0] List\r
//\r
FindQhPtr->Prev->Next = QhPtr;\r
- FindQhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FindQhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FindQhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Prev->Qh.QhTerminate = FALSE;\r
}\r
\r
FindQhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Prev->Qh.QhTerminate = FALSE;\r
}\r
\r
- QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(FindQhPtr->Qh)) >> 5);\r
+ QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(FindQhPtr->Qh) >> 5);\r
QhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
QhPtr->Qh.QhTerminate = FALSE;\r
\r
QhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
QhPtr->Qh.QhTerminate = FALSE;\r
\r
//\r
// Link Qh after FindQh, Qh is the Last one\r
//\r
//\r
// Link Qh after FindQh, Qh is the Last one\r
//\r
- FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FindQhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Qh.QhTerminate = FALSE;\r
\r
FindQhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Qh.QhTerminate = FALSE;\r
\r
//\r
// Null FrameList\r
//\r
//\r
// Null FrameList\r
//\r
- FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
}\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
}\r
FrameIndex += QhPtr->Interval;\r
while (FrameIndex < HcDev->PeriodicFrameListLength) {\r
FrameEntryPtr = (FRAME_LIST_ENTRY *) (FrameEntryPtr + QhPtr->Interval);\r
FrameIndex += QhPtr->Interval;\r
while (FrameIndex < HcDev->PeriodicFrameListLength) {\r
FrameEntryPtr = (FRAME_LIST_ENTRY *) (FrameEntryPtr + QhPtr->Interval);\r
- FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
FrameIndex += QhPtr->Interval;\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
FrameIndex += QhPtr->Interval;\r
while (FrameIndex < HcDev->PeriodicFrameListLength) {\r
FrameEntryPtr = (FRAME_LIST_ENTRY *) (FrameEntryPtr + QhPtr->Interval);\r
if ((FrameIndex % QhPtr->Prev->Interval) != 0) {\r
while (FrameIndex < HcDev->PeriodicFrameListLength) {\r
FrameEntryPtr = (FRAME_LIST_ENTRY *) (FrameEntryPtr + QhPtr->Interval);\r
if ((FrameIndex % QhPtr->Prev->Interval) != 0) {\r
- FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
}\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
}\r
//\r
// Not Null FrameList\r
//\r
//\r
// Not Null FrameList\r
//\r
- FindQhHwPtr = (EHCI_QH_HW *) (UINTN) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);\r
+ FindQhHwPtr = (EHCI_QH_HW *) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);\r
FindQhPtr = (EHCI_QH_ENTITY *) GET_QH_ENTITY_ADDR (FindQhHwPtr);\r
//\r
// FindQh is Last Qh in the Asynchronous List, Link Qh after FindQh\r
FindQhPtr = (EHCI_QH_ENTITY *) GET_QH_ENTITY_ADDR (FindQhHwPtr);\r
//\r
// FindQh is Last Qh in the Asynchronous List, Link Qh after FindQh\r
FindQhPtr = FindQhPtr->Next;\r
}\r
\r
FindQhPtr = FindQhPtr->Next;\r
}\r
\r
- FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FindQhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Qh.QhTerminate = FALSE;\r
\r
FindQhPtr->Qh.SelectType = QH_SELECT_TYPE;\r
FindQhPtr->Qh.QhTerminate = FALSE;\r
\r
//\r
// Null FrameList\r
//\r
//\r
// Null FrameList\r
//\r
- FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);\r
+ FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
}\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
}\r
}\r
} else {\r
while (FrameIndex < HcDev->PeriodicFrameListLength) {\r
}\r
} else {\r
while (FrameIndex < HcDev->PeriodicFrameListLength) {\r
- FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Next->Qh)) >> 5);\r
+ FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Next->Qh) >> 5);\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
FrameEntryPtr += Interval;\r
FrameEntryPtr->SelectType = QH_SELECT_TYPE;\r
FrameEntryPtr->LinkTerminate = FALSE;\r
FrameEntryPtr += Interval;\r
QhPtr->Prev->Qh.SelectType = 0;\r
QhPtr->Prev->Qh.QhTerminate = TRUE;\r
} else {\r
QhPtr->Prev->Qh.SelectType = 0;\r
QhPtr->Prev->Qh.QhTerminate = TRUE;\r
} else {\r
- QhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Next->Qh)) >> 5);\r
+ QhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Next->Qh) >> 5);\r
QhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;\r
QhPtr->Prev->Qh.QhTerminate = FALSE;\r
}\r
QhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;\r
QhPtr->Prev->Qh.QhTerminate = FALSE;\r
}\r
RemainLen = DataLen;\r
ASSERT (QtdHwPtr);\r
\r
RemainLen = DataLen;\r
ASSERT (QtdHwPtr);\r
\r
+ //\r
+ // Allow buffer address range across 4G.\r
+ // But EFI_USB_MAX_BULK_BUFFER_NUM = 1, so don't allow\r
+ // seperate buffer array.\r
+ //\r
+\r
//\r
// Set BufferPointer0, ExtBufferPointer0 and Offset\r
//\r
//\r
// Set BufferPointer0, ExtBufferPointer0 and Offset\r
//\r
}\r
\r
QtdHwPtr->BufferPointer1 = QtdHwPtr->BufferPointer0 + 1;\r
}\r
\r
QtdHwPtr->BufferPointer1 = QtdHwPtr->BufferPointer0 + 1;\r
- QtdHwPtr->ExtBufferPointer1 = QtdHwPtr->ExtBufferPointer0;\r
+ QtdHwPtr->ExtBufferPointer1 = (QtdHwPtr->BufferPointer1 == 0) ? (QtdHwPtr->ExtBufferPointer0 + 1) : QtdHwPtr->ExtBufferPointer0;\r
\r
//\r
// Set BufferPointer2 and ExtBufferPointer2\r
\r
//\r
// Set BufferPointer2 and ExtBufferPointer2\r
}\r
\r
QtdHwPtr->BufferPointer2 = QtdHwPtr->BufferPointer1 + 1;\r
}\r
\r
QtdHwPtr->BufferPointer2 = QtdHwPtr->BufferPointer1 + 1;\r
- QtdHwPtr->ExtBufferPointer2 = QtdHwPtr->ExtBufferPointer0;\r
+ QtdHwPtr->ExtBufferPointer2 = (QtdHwPtr->BufferPointer2 == 0) ? (QtdHwPtr->ExtBufferPointer1 + 1) : QtdHwPtr->ExtBufferPointer1;\r
\r
//\r
// Set BufferPointer3 and ExtBufferPointer3\r
\r
//\r
// Set BufferPointer3 and ExtBufferPointer3\r
}\r
\r
QtdHwPtr->BufferPointer3 = QtdHwPtr->BufferPointer2 + 1;\r
}\r
\r
QtdHwPtr->BufferPointer3 = QtdHwPtr->BufferPointer2 + 1;\r
- QtdHwPtr->ExtBufferPointer3 = QtdHwPtr->ExtBufferPointer0;\r
+ QtdHwPtr->ExtBufferPointer3 = (QtdHwPtr->BufferPointer2 == 0) ? (QtdHwPtr->ExtBufferPointer2 + 1) : QtdHwPtr->ExtBufferPointer2;\r
\r
//\r
// Set BufferPointer4 and ExtBufferPointer4\r
\r
//\r
// Set BufferPointer4 and ExtBufferPointer4\r
}\r
\r
QtdHwPtr->BufferPointer4 = QtdHwPtr->BufferPointer3 + 1;\r
}\r
\r
QtdHwPtr->BufferPointer4 = QtdHwPtr->BufferPointer3 + 1;\r
- QtdHwPtr->ExtBufferPointer4 = QtdHwPtr->ExtBufferPointer0;\r
+ QtdHwPtr->ExtBufferPointer4 = (QtdHwPtr->BufferPointer3 == 0) ? (QtdHwPtr->ExtBufferPointer3 + 1) : QtdHwPtr->ExtBufferPointer3;\r
- QtdHwPtr = GetQtdNextPointer (QtdHwPtr);\r
- QtdPtr = (EHCI_QTD_ENTITY *) GET_QTD_ENTITY_ADDR (QtdHwPtr);\r
+ QtdPtr = QtdPtr->Next;\r
+ QtdHwPtr = &(QtdPtr->Qtd);\r
}\r
\r
QtdHwPtr = &(AsyncRequestPtr->QhPtr->FirstQtdPtr->Qtd);\r
}\r
\r
QtdHwPtr = &(AsyncRequestPtr->QhPtr->FirstQtdPtr->Qtd);\r
- ReceiveBuffer = (UINT8 *) (UINTN) GET_0B_TO_31B ((QtdHwPtr->BufferPointer0 << 12) | AsyncRequestPtr->QhPtr->FirstQtdPtr->StaticCurrentOffset);\r
+ ReceiveBuffer = (UINT8 *) GET_0B_TO_31B ((QtdHwPtr->BufferPointer0 << 12) | AsyncRequestPtr->QhPtr->FirstQtdPtr->StaticCurrentOffset);\r
CopyMem (\r
ProcessBuffer,\r
ReceiveBuffer,\r
CopyMem (\r
ProcessBuffer,\r
ReceiveBuffer,\r
//\r
#define NORMAL_MEMORY_BLOCK_UNIT_IN_PAGES 1\r
\r
//\r
#define NORMAL_MEMORY_BLOCK_UNIT_IN_PAGES 1\r
\r
-#define bit(a) 1 << (a)\r
+#define bit(a) (1 << (a))\r
\r
//\r
// ////////////////////////////////////////////////////////////////////////\r
\r
//\r
// ////////////////////////////////////////////////////////////////////////\r
- LIST_ENTRY *NextEntry;\r
+ LIST_ENTRY *NextEntry;\r
CONFIG_DESC_LIST_ENTRY *ConfigEntry;\r
UINT32 Status;\r
EFI_STATUS Result;\r
CONFIG_DESC_LIST_ENTRY *ConfigEntry;\r
UINT32 Status;\r
EFI_STATUS Result;\r
{\r
CONFIG_DESC_LIST_ENTRY *ConfigEntry;\r
UINT16 ConfigValue;\r
{\r
CONFIG_DESC_LIST_ENTRY *ConfigEntry;\r
UINT16 ConfigValue;\r
- LIST_ENTRY *NextEntry;\r
+ LIST_ENTRY *NextEntry;\r
\r
if (IsListEmpty (&UsbIoDev->ConfigDescListHead)) {\r
return EFI_DEVICE_ERROR;\r
\r
if (IsListEmpty (&UsbIoDev->ConfigDescListHead)) {\r
return EFI_DEVICE_ERROR;\r
\r
#include "usbbus.h"\r
\r
\r
#include "usbbus.h"\r
\r
-UINTN gUSBDebugLevel = EFI_D_INFO;\r
-UINTN gUSBErrorLevel = EFI_D_ERROR;\r
+\r
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN gUSBDebugLevel = EFI_D_INFO;\r
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN gUSBErrorLevel = EFI_D_ERROR;\r
\r
//\r
// The UsbBusProtocol is just used to locate USB_BUS_CONTROLLER\r
\r
//\r
// The UsbBusProtocol is just used to locate USB_BUS_CONTROLLER\r
--*/\r
{\r
USB_IO_CONTROLLER_DEVICE *UsbIoController;\r
--*/\r
{\r
USB_IO_CONTROLLER_DEVICE *UsbIoController;\r
\r
UsbIoController = USB_IO_CONTROLLER_DEVICE_FROM_USB_IO_THIS (This);\r
\r
\r
UsbIoController = USB_IO_CONTROLLER_DEVICE_FROM_USB_IO_THIS (This);\r
\r
+ if (IsHub (UsbIoController)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ \r
//\r
// Since at this time, this device has already been configured,\r
// it needs to be re-configured.\r
//\r
//\r
// Since at this time, this device has already been configured,\r
// it needs to be re-configured.\r
//\r
- Status = ParentPortReset (UsbIoController, TRUE, 0);\r
-\r
- return Status;\r
+ return ParentPortReset (UsbIoController, TRUE, 0);\r
#include "hub.h"\r
#include "usbutil.h"\r
\r
#include "hub.h"\r
#include "usbutil.h"\r
\r
-extern UINTN gUSBDebugLevel;\r
-extern UINTN gUSBErrorLevel;\r
+\r
+GLOBAL_REMOVE_IF_UNREFERENCED extern UINTN gUSBDebugLevel;\r
+GLOBAL_REMOVE_IF_UNREFERENCED extern UINTN gUSBErrorLevel;\r
+\r
\r
#define MICROSECOND 10000\r
#define ONESECOND (1000 * MICROSECOND)\r
\r
#define MICROSECOND 10000\r
#define ONESECOND (1000 * MICROSECOND)\r
InitializeUsbIoInstance (\r
IN USB_IO_CONTROLLER_DEVICE *UsbIoController\r
)\r
InitializeUsbIoInstance (\r
IN USB_IO_CONTROLLER_DEVICE *UsbIoController\r
)\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Initialize the instance of UsbIo controller\r
+\r
+Arguments:\r
+\r
+ UsbIoController - A pointer to controller structure of UsbIo\r
+\r
+Returns:\r
+\r
+--*/\r
{\r
//\r
// Copy EFI_USB_IO protocol instance\r
{\r
//\r
// Copy EFI_USB_IO protocol instance\r
UINT8 DataToggle;\r
UINT8 OldToggle;\r
EFI_STATUS RetStatus;\r
UINT8 DataToggle;\r
UINT8 OldToggle;\r
EFI_STATUS RetStatus;\r
USB_IO_CONTROLLER_DEVICE *UsbIoController;\r
ENDPOINT_DESC_LIST_ENTRY *EndPointListEntry;\r
USB_IO_CONTROLLER_DEVICE *UsbIoController;\r
ENDPOINT_DESC_LIST_ENTRY *EndPointListEntry;\r
- UINT32 TransferResult;\r
UINT8 DataBuffersNumber;\r
UINT8 DataBuffersNumber;\r
+ UINT32 TransferResult;\r
\r
DataBuffersNumber = 1;\r
UsbIoController = USB_IO_CONTROLLER_DEVICE_FROM_USB_IO_THIS (This);\r
\r
DataBuffersNumber = 1;\r
UsbIoController = USB_IO_CONTROLLER_DEVICE_FROM_USB_IO_THIS (This);\r
//\r
if (EndpointDescriptor.Attributes == 0x02) {\r
if (EndpointDescriptor.EndpointAddress & 0x80) {\r
//\r
if (EndpointDescriptor.Attributes == 0x02) {\r
if (EndpointDescriptor.EndpointAddress & 0x80) {\r
- CopyMem (&UsbCbiDev->BulkInEndpointDescriptor, &EndpointDescriptor, sizeof(EndpointDescriptor));\r
- // UsbCbiDev->BulkInEndpointDescriptor = EndpointDescriptor;\r
- EndpointExistMask |= bit (0);\r
+ CopyMem (&UsbCbiDev->BulkInEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
+ EndpointExistMask |= bit (0);\r
- CopyMem (&UsbCbiDev->BulkOutEndpointDescriptor, &EndpointDescriptor, sizeof(EndpointDescriptor));\r
- // UsbCbiDev->BulkOutEndpointDescriptor = EndpointDescriptor;\r
- EndpointExistMask |= bit (1);\r
+ CopyMem (&UsbCbiDev->BulkOutEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
+ EndpointExistMask |= bit (1);\r
}\r
}\r
//\r
// We parse interrupt endpoint\r
//\r
if (EndpointDescriptor.Attributes == 0x03) {\r
}\r
}\r
//\r
// We parse interrupt endpoint\r
//\r
if (EndpointDescriptor.Attributes == 0x03) {\r
- CopyMem (&UsbCbiDev->InterruptEndpointDescriptor, &EndpointDescriptor, sizeof(EndpointDescriptor));\r
- // UsbCbiDev->InterruptEndpointDescriptor = EndpointDescriptor;\r
+ CopyMem (&UsbCbiDev->InterruptEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
EndpointExistMask |= bit (2);\r
}\r
\r
EndpointExistMask |= bit (2);\r
}\r
\r
//\r
if (EndpointDescriptor.Attributes == 0x02) {\r
if (EndpointDescriptor.EndpointAddress & 0x80) {\r
//\r
if (EndpointDescriptor.Attributes == 0x02) {\r
if (EndpointDescriptor.EndpointAddress & 0x80) {\r
- CopyMem (&UsbCbiDev->BulkInEndpointDescriptor, &EndpointDescriptor, sizeof(EndpointDescriptor));\r
- //UsbCbiDev->BulkInEndpointDescriptor = EndpointDescriptor;\r
- } else {\r
- CopyMem (&UsbCbiDev->BulkOutEndpointDescriptor, &EndpointDescriptor, sizeof(EndpointDescriptor));\r
- //UsbCbiDev->BulkOutEndpointDescriptor = EndpointDescriptor;\r
- }\r
+ CopyMem (&UsbCbiDev->BulkInEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
+ } else {\r
+ CopyMem (&UsbCbiDev->BulkOutEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
+ }\r
// We parse interrupt endpoint\r
//\r
if (EndpointDescriptor.Attributes == 0x03) {\r
// We parse interrupt endpoint\r
//\r
if (EndpointDescriptor.Attributes == 0x03) {\r
- CopyMem (&UsbCbiDev->InterruptEndpointDescriptor, &EndpointDescriptor, sizeof(EndpointDescriptor));\r
- //UsbCbiDev->InterruptEndpointDescriptor = EndpointDescriptor;\r
+ CopyMem (&UsbCbiDev->InterruptEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
// We only care interrupt endpoint here\r
//\r
CopyMem (&UsbKeyboardDevice->IntEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
// We only care interrupt endpoint here\r
//\r
CopyMem (&UsbKeyboardDevice->IntEndpointDescriptor, &EndpointDescriptor, sizeof (EndpointDescriptor));\r
- //UsbKeyboardDevice->IntEndpointDescriptor = EndpointDescriptor;\r
//\r
// bit definition\r
//\r
//\r
// bit definition\r
//\r
-#define bit(a) 1 << (a)\r
+#define bit(a) (1 << (a))\r
\r
//\r
// timeout unit is in millisecond.\r
\r
//\r
// timeout unit is in millisecond.\r
Status = EFI_SUCCESS;\r
FloppyStatus = EFI_SUCCESS;\r
CopyMem (&OldMediaInfo, UsbFloppyDevice->BlkIo.Media, sizeof (OldMediaInfo));\r
Status = EFI_SUCCESS;\r
FloppyStatus = EFI_SUCCESS;\r
CopyMem (&OldMediaInfo, UsbFloppyDevice->BlkIo.Media, sizeof (OldMediaInfo));\r
- //OldMediaInfo = *UsbFloppyDevice->BlkIo.Media;\r
*MediaChange = FALSE;\r
NeedReadCapacity = TRUE;\r
\r
*MediaChange = FALSE;\r
NeedReadCapacity = TRUE;\r
\r