// bit maps.\r
//\r
USB_CHANGE_FEATURE_MAP mHubFeatureMap[] = {\r
- {USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange},\r
- {USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange},\r
- {USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange},\r
- {USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange},\r
- {USB_PORT_STAT_C_RESET, EfiUsbPortResetChange}\r
+ { USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange },\r
+ { USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange },\r
+ { USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange },\r
+ { USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange },\r
+ { USB_PORT_STAT_C_RESET, EfiUsbPortResetChange }\r
};\r
\r
USB_CHANGE_FEATURE_MAP mRootHubFeatureMap[] = {\r
- {USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange},\r
- {USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange},\r
- {USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange},\r
- {USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange},\r
- {USB_PORT_STAT_C_RESET, EfiUsbPortResetChange},\r
+ { USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange },\r
+ { USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange },\r
+ { USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange },\r
+ { USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange },\r
+ { USB_PORT_STAT_C_RESET, EfiUsbPortResetChange },\r
};\r
\r
//\r
// is related to an interface, these requests are sent\r
// to the control endpoint of the device.\r
//\r
+\r
/**\r
USB hub control transfer to set the hub depth.\r
\r
**/\r
EFI_STATUS\r
UsbHubCtrlSetHubDepth (\r
- IN USB_DEVICE *HubDev,\r
- IN UINT16 Depth\r
+ IN USB_DEVICE *HubDev,\r
+ IN UINT16 Depth\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
Status = UsbCtrlRequest (\r
HubDev,\r
**/\r
EFI_STATUS\r
UsbHubCtrlClearHubFeature (\r
- IN USB_DEVICE *HubDev,\r
- IN UINT16 Feature\r
+ IN USB_DEVICE *HubDev,\r
+ IN UINT16 Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
Status = UsbCtrlRequest (\r
HubDev,\r
return Status;\r
}\r
\r
-\r
/**\r
Clear the feature of the device's port.\r
\r
**/\r
EFI_STATUS\r
UsbHubCtrlClearPortFeature (\r
- IN USB_DEVICE *HubDev,\r
- IN UINT8 Port,\r
- IN UINT16 Feature\r
+ IN USB_DEVICE *HubDev,\r
+ IN UINT8 Port,\r
+ IN UINT16 Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// In USB bus, all the port index starts from 0. But HUB\r
USB_HUB_TARGET_PORT,\r
USB_HUB_REQ_CLEAR_FEATURE,\r
Feature,\r
- (UINT16) (Port + 1),\r
+ (UINT16)(Port + 1),\r
NULL,\r
0\r
);\r
return Status;\r
}\r
\r
-\r
/**\r
Clear the transaction translate buffer if full/low\r
speed control/bulk transfer failed and the transfer\r
**/\r
EFI_STATUS\r
UsbHubCtrlClearTTBuffer (\r
- IN USB_DEVICE *HubDev,\r
- IN UINT8 Port,\r
- IN UINT16 DevAddr,\r
- IN UINT16 EpNum,\r
- IN UINT16 EpType\r
+ IN USB_DEVICE *HubDev,\r
+ IN UINT8 Port,\r
+ IN UINT16 DevAddr,\r
+ IN UINT16 EpNum,\r
+ IN UINT16 EpType\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT16 Value;\r
+ EFI_STATUS Status;\r
+ UINT16 Value;\r
\r
//\r
// Check USB2.0 spec page 424 for wValue's encoding\r
//\r
- Value = (UINT16) ((EpNum & 0x0F) | (DevAddr << 4) |\r
- ((EpType & 0x03) << 11) | ((EpNum & 0x80) << 15));\r
+ Value = (UINT16)((EpNum & 0x0F) | (DevAddr << 4) |\r
+ ((EpType & 0x03) << 11) | ((EpNum & 0x80) << 15));\r
\r
Status = UsbCtrlRequest (\r
HubDev,\r
USB_HUB_TARGET_PORT,\r
USB_HUB_REQ_CLEAR_TT,\r
Value,\r
- (UINT16) (Port + 1),\r
+ (UINT16)(Port + 1),\r
NULL,\r
0\r
);\r
**/\r
EFI_STATUS\r
UsbHubCtrlGetHubDesc (\r
- IN USB_DEVICE *HubDev,\r
- OUT VOID *Buf,\r
- IN UINTN Len\r
+ IN USB_DEVICE *HubDev,\r
+ OUT VOID *Buf,\r
+ IN UINTN Len\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT8 DescType;\r
+ EFI_STATUS Status;\r
+ UINT8 DescType;\r
\r
DescType = (HubDev->Speed == EFI_USB_SPEED_SUPER) ?\r
USB_DESC_TYPE_HUB_SUPER_SPEED :\r
USB_REQ_TYPE_CLASS,\r
USB_HUB_TARGET_HUB,\r
USB_HUB_REQ_GET_DESC,\r
- (UINT16) (DescType << 8),\r
+ (UINT16)(DescType << 8),\r
0,\r
Buf,\r
Len\r
return Status;\r
}\r
\r
-\r
/**\r
Usb hub control transfer to get the hub status.\r
\r
**/\r
EFI_STATUS\r
UsbHubCtrlGetHubStatus (\r
- IN USB_DEVICE *HubDev,\r
- OUT UINT32 *State\r
+ IN USB_DEVICE *HubDev,\r
+ OUT UINT32 *State\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
Status = UsbCtrlRequest (\r
HubDev,\r
return Status;\r
}\r
\r
-\r
/**\r
Usb hub control transfer to get the port status.\r
\r
**/\r
EFI_STATUS\r
UsbHubCtrlGetPortStatus (\r
- IN USB_DEVICE *HubDev,\r
- IN UINT8 Port,\r
- OUT VOID *State\r
+ IN USB_DEVICE *HubDev,\r
+ IN UINT8 Port,\r
+ OUT VOID *State\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// In USB bus, all the port index starts from 0. But HUB\r
USB_HUB_TARGET_PORT,\r
USB_HUB_REQ_GET_STATUS,\r
0,\r
- (UINT16) (Port + 1),\r
+ (UINT16)(Port + 1),\r
State,\r
4\r
);\r
return Status;\r
}\r
\r
-\r
/**\r
Usb hub control transfer to set the port feature.\r
\r
**/\r
EFI_STATUS\r
UsbHubCtrlSetPortFeature (\r
- IN USB_DEVICE *HubDev,\r
- IN UINT8 Port,\r
- IN UINT8 Feature\r
+ IN USB_DEVICE *HubDev,\r
+ IN UINT8 Port,\r
+ IN UINT8 Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// In USB bus, all the port index starts from 0. But HUB\r
USB_HUB_TARGET_PORT,\r
USB_HUB_REQ_SET_FEATURE,\r
Feature,\r
- (UINT16) (Port + 1),\r
+ (UINT16)(Port + 1),\r
NULL,\r
0\r
);\r
return Status;\r
}\r
\r
-\r
/**\r
Read the whole usb hub descriptor. It is necessary\r
to do it in two steps because hub descriptor is of\r
OUT EFI_USB_HUB_DESCRIPTOR *HubDesc\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// First get the hub descriptor length\r
return UsbHubCtrlGetHubDesc (HubDev, HubDesc, HubDesc->Length);\r
}\r
\r
-\r
-\r
/**\r
Ack the hub change bits. If these bits are not ACKed, Hub will\r
always return changed bit map from its interrupt endpoint.\r
**/\r
EFI_STATUS\r
UsbHubAckHubStatus (\r
- IN USB_DEVICE *HubDev\r
+ IN USB_DEVICE *HubDev\r
)\r
{\r
- EFI_USB_PORT_STATUS HubState;\r
- EFI_STATUS Status;\r
+ EFI_USB_PORT_STATUS HubState;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHubCtrlGetHubStatus (HubDev, (UINT32 *) &HubState);\r
+ Status = UsbHubCtrlGetHubStatus (HubDev, (UINT32 *)&HubState);\r
\r
if (EFI_ERROR (Status)) {\r
return Status;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Test whether the interface is a hub interface.\r
\r
**/\r
BOOLEAN\r
UsbIsHubInterface (\r
- IN USB_INTERFACE *UsbIf\r
+ IN USB_INTERFACE *UsbIf\r
)\r
{\r
EFI_USB_INTERFACE_DESCRIPTOR *Setting;\r
Setting = &UsbIf->IfSetting->Desc;\r
\r
if ((Setting->InterfaceClass == USB_HUB_CLASS_CODE) &&\r
- (Setting->InterfaceSubClass == USB_HUB_SUBCLASS_CODE)) {\r
-\r
+ (Setting->InterfaceSubClass == USB_HUB_SUBCLASS_CODE))\r
+ {\r
return TRUE;\r
}\r
\r
return FALSE;\r
}\r
\r
-\r
/**\r
The callback function to the USB hub status change\r
interrupt endpoint. It is called periodically by\r
EFI_STATUS\r
EFIAPI\r
UsbOnHubInterrupt (\r
- IN VOID *Data,\r
- IN UINTN DataLength,\r
- IN VOID *Context,\r
- IN UINT32 Result\r
+ IN VOID *Data,\r
+ IN UINTN DataLength,\r
+ IN VOID *Context,\r
+ IN UINT32 Result\r
)\r
{\r
- USB_INTERFACE *HubIf;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
- EFI_USB_ENDPOINT_DESCRIPTOR *EpDesc;\r
- EFI_STATUS Status;\r
+ USB_INTERFACE *HubIf;\r
+ EFI_USB_IO_PROTOCOL *UsbIo;\r
+ EFI_USB_ENDPOINT_DESCRIPTOR *EpDesc;\r
+ EFI_STATUS Status;\r
\r
- HubIf = (USB_INTERFACE *) Context;\r
- UsbIo = &(HubIf->UsbIo);\r
- EpDesc = &(HubIf->HubEp->Desc);\r
+ HubIf = (USB_INTERFACE *)Context;\r
+ UsbIo = &(HubIf->UsbIo);\r
+ EpDesc = &(HubIf->HubEp->Desc);\r
\r
if (Result != EFI_USB_NOERROR) {\r
//\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbOnHubInterrupt: failed to remove async transfer - %r\n", Status));\r
+ DEBUG ((DEBUG_ERROR, "UsbOnHubInterrupt: failed to remove async transfer - %r\n", Status));\r
return Status;\r
}\r
\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbOnHubInterrupt: failed to submit new async transfer - %r\n", Status));\r
+ DEBUG ((DEBUG_ERROR, "UsbOnHubInterrupt: failed to submit new async transfer - %r\n", Status));\r
}\r
\r
return Status;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
-\r
/**\r
Initialize the device for a non-root hub.\r
\r
**/\r
EFI_STATUS\r
UsbHubInit (\r
- IN USB_INTERFACE *HubIf\r
+ IN USB_INTERFACE *HubIf\r
)\r
{\r
UINT8 HubDescBuffer[256];\r
//\r
// Locate the interrupt endpoint for port change map\r
//\r
- HubIf->IsHub = FALSE;\r
- Setting = HubIf->IfSetting;\r
- HubDev = HubIf->Device;\r
- EpDesc = NULL;\r
- NumEndpoints = Setting->Desc.NumEndpoints;\r
+ HubIf->IsHub = FALSE;\r
+ Setting = HubIf->IfSetting;\r
+ HubDev = HubIf->Device;\r
+ EpDesc = NULL;\r
+ NumEndpoints = Setting->Desc.NumEndpoints;\r
\r
for (Index = 0; Index < NumEndpoints; Index++) {\r
ASSERT ((Setting->Endpoints != NULL) && (Setting->Endpoints[Index] != NULL));\r
EpDesc = Setting->Endpoints[Index];\r
\r
if (USB_BIT_IS_SET (EpDesc->Desc.EndpointAddress, USB_ENDPOINT_DIR_IN) &&\r
- (USB_ENDPOINT_TYPE (&EpDesc->Desc) == USB_ENDPOINT_INTERRUPT)) {\r
+ (USB_ENDPOINT_TYPE (&EpDesc->Desc) == USB_ENDPOINT_INTERRUPT))\r
+ {\r
break;\r
}\r
}\r
\r
if (Index == NumEndpoints) {\r
- DEBUG (( DEBUG_ERROR, "UsbHubInit: no interrupt endpoint found for hub %d\n", HubDev->Address));\r
+ DEBUG ((DEBUG_ERROR, "UsbHubInit: no interrupt endpoint found for hub %d\n", HubDev->Address));\r
return EFI_DEVICE_ERROR;\r
}\r
\r
// The length field of descriptor is UINT8 type, so the buffer\r
// with 256 bytes is enough to hold the descriptor data.\r
//\r
- HubDesc = (EFI_USB_HUB_DESCRIPTOR *) HubDescBuffer;\r
- Status = UsbHubReadDesc (HubDev, HubDesc);\r
+ HubDesc = (EFI_USB_HUB_DESCRIPTOR *)HubDescBuffer;\r
+ Status = UsbHubReadDesc (HubDev, HubDesc);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbHubInit: failed to read HUB descriptor %r\n", Status));\r
+ DEBUG ((DEBUG_ERROR, "UsbHubInit: failed to read HUB descriptor %r\n", Status));\r
return Status;\r
}\r
\r
HubIf->NumOfPort = HubDesc->NumPorts;\r
\r
- DEBUG (( DEBUG_INFO, "UsbHubInit: hub %d has %d ports\n", HubDev->Address,HubIf->NumOfPort));\r
+ DEBUG ((DEBUG_INFO, "UsbHubInit: hub %d has %d ports\n", HubDev->Address, HubIf->NumOfPort));\r
\r
//\r
// OK, set IsHub to TRUE. Now usb bus can handle this device\r
// for both gang/individual powered hubs.\r
//\r
for (Index = 0; Index < HubDesc->NumPorts; Index++) {\r
- UsbHubCtrlSetPortFeature (HubIf->Device, Index, (EFI_USB_PORT_FEATURE) USB_HUB_PORT_POWER);\r
+ UsbHubCtrlSetPortFeature (HubIf->Device, Index, (EFI_USB_PORT_FEATURE)USB_HUB_PORT_POWER);\r
}\r
\r
//\r
if (HubDesc->PwrOn2PwrGood > 0) {\r
gBS->Stall (HubDesc->PwrOn2PwrGood * USB_SET_PORT_POWER_STALL);\r
}\r
+\r
UsbHubAckHubStatus (HubIf->Device);\r
}\r
\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbHubInit: failed to create signal for hub %d - %r\n",\r
- HubDev->Address, Status));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "UsbHubInit: failed to create signal for hub %d - %r\n",\r
+ HubDev->Address,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbHubInit: failed to queue interrupt transfer for hub %d - %r\n",\r
- HubDev->Address, Status));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "UsbHubInit: failed to queue interrupt transfer for hub %d - %r\n",\r
+ HubDev->Address,\r
+ Status\r
+ ));\r
\r
gBS->CloseEvent (HubIf->HubNotify);\r
HubIf->HubNotify = NULL;\r
return Status;\r
}\r
\r
- DEBUG (( DEBUG_INFO, "UsbHubInit: hub %d initialized\n", HubDev->Address));\r
+ DEBUG ((DEBUG_INFO, "UsbHubInit: hub %d initialized\n", HubDev->Address));\r
return Status;\r
}\r
\r
-\r
-\r
/**\r
Get the port status. This function is required to\r
ACK the port change bits although it will return\r
**/\r
EFI_STATUS\r
UsbHubGetPortStatus (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port,\r
- OUT EFI_USB_PORT_STATUS *PortState\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port,\r
+ OUT EFI_USB_PORT_STATUS *PortState\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHubCtrlGetPortStatus (HubIf->Device, Port, PortState);\r
+ Status = UsbHubCtrlGetPortStatus (HubIf->Device, Port, PortState);\r
\r
return Status;\r
}\r
\r
-\r
-\r
/**\r
Clear the port change status.\r
\r
**/\r
VOID\r
UsbHubClearPortChange (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port\r
)\r
{\r
EFI_USB_PORT_STATUS PortState;\r
Map = &mHubFeatureMap[Index];\r
\r
if (USB_BIT_IS_SET (PortState.PortChangeStatus, Map->ChangedBit)) {\r
- UsbHubCtrlClearPortFeature (HubIf->Device, Port, (UINT16) Map->Feature);\r
+ UsbHubCtrlClearPortFeature (HubIf->Device, Port, (UINT16)Map->Feature);\r
}\r
}\r
}\r
\r
-\r
-\r
/**\r
Function to set the port feature for non-root hub.\r
\r
**/\r
EFI_STATUS\r
UsbHubSetPortFeature (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port,\r
- IN EFI_USB_PORT_FEATURE Feature\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port,\r
+ IN EFI_USB_PORT_FEATURE Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHubCtrlSetPortFeature (HubIf->Device, Port, (UINT8) Feature);\r
+ Status = UsbHubCtrlSetPortFeature (HubIf->Device, Port, (UINT8)Feature);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Interface function to clear the port feature for non-root hub.\r
\r
**/\r
EFI_STATUS\r
UsbHubClearPortFeature (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port,\r
- IN EFI_USB_PORT_FEATURE Feature\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port,\r
+ IN EFI_USB_PORT_FEATURE Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHubCtrlClearPortFeature (HubIf->Device, Port, (UINT8) Feature);\r
+ Status = UsbHubCtrlClearPortFeature (HubIf->Device, Port, (UINT8)Feature);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Interface function to reset the port.\r
\r
**/\r
EFI_STATUS\r
UsbHubResetPort (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port\r
)\r
{\r
- EFI_USB_PORT_STATUS PortState;\r
- UINTN Index;\r
- EFI_STATUS Status;\r
+ EFI_USB_PORT_STATUS PortState;\r
+ UINTN Index;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHubSetPortFeature (HubIf, Port, (EFI_USB_PORT_FEATURE) USB_HUB_PORT_RESET);\r
+ Status = UsbHubSetPortFeature (HubIf, Port, (EFI_USB_PORT_FEATURE)USB_HUB_PORT_RESET);\r
\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
if (!EFI_ERROR (Status) &&\r
- USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_RESET)) {\r
+ USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_RESET))\r
+ {\r
gBS->Stall (USB_SET_PORT_RECOVERY_STALL);\r
return EFI_SUCCESS;\r
}\r
return EFI_TIMEOUT;\r
}\r
\r
-\r
/**\r
Release the hub's control of the interface.\r
\r
**/\r
EFI_STATUS\r
UsbHubRelease (\r
- IN USB_INTERFACE *HubIf\r
+ IN USB_INTERFACE *HubIf\r
)\r
{\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
- EFI_STATUS Status;\r
+ EFI_USB_IO_PROTOCOL *UsbIo;\r
+ EFI_STATUS Status;\r
\r
UsbIo = &HubIf->UsbIo;\r
Status = UsbIo->UsbAsyncInterruptTransfer (\r
\r
gBS->CloseEvent (HubIf->HubNotify);\r
\r
- HubIf->IsHub = FALSE;\r
- HubIf->HubApi = NULL;\r
- HubIf->HubEp = NULL;\r
- HubIf->HubNotify = NULL;\r
+ HubIf->IsHub = FALSE;\r
+ HubIf->HubApi = NULL;\r
+ HubIf->HubEp = NULL;\r
+ HubIf->HubNotify = NULL;\r
\r
- DEBUG (( DEBUG_INFO, "UsbHubRelease: hub device %d released\n", HubIf->Device->Address));\r
+ DEBUG ((DEBUG_INFO, "UsbHubRelease: hub device %d released\n", HubIf->Device->Address));\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
/**\r
Initialize the interface for root hub.\r
\r
**/\r
EFI_STATUS\r
UsbRootHubInit (\r
- IN USB_INTERFACE *HubIf\r
+ IN USB_INTERFACE *HubIf\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT8 MaxSpeed;\r
- UINT8 NumOfPort;\r
- UINT8 Support64;\r
+ EFI_STATUS Status;\r
+ UINT8 MaxSpeed;\r
+ UINT8 NumOfPort;\r
+ UINT8 Support64;\r
\r
Status = UsbHcGetCapability (HubIf->Device->Bus, &MaxSpeed, &NumOfPort, &Support64);\r
\r
return Status;\r
}\r
\r
- DEBUG (( DEBUG_INFO, "UsbRootHubInit: root hub %p - max speed %d, %d ports\n",\r
- HubIf, MaxSpeed, NumOfPort));\r
-\r
- HubIf->IsHub = TRUE;\r
- HubIf->HubApi = &mUsbRootHubApi;\r
- HubIf->HubEp = NULL;\r
- HubIf->MaxSpeed = MaxSpeed;\r
- HubIf->NumOfPort = NumOfPort;\r
- HubIf->HubNotify = NULL;\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "UsbRootHubInit: root hub %p - max speed %d, %d ports\n",\r
+ HubIf,\r
+ MaxSpeed,\r
+ NumOfPort\r
+ ));\r
+\r
+ HubIf->IsHub = TRUE;\r
+ HubIf->HubApi = &mUsbRootHubApi;\r
+ HubIf->HubEp = NULL;\r
+ HubIf->MaxSpeed = MaxSpeed;\r
+ HubIf->NumOfPort = NumOfPort;\r
+ HubIf->HubNotify = NULL;\r
\r
//\r
// Create a timer to poll root hub ports periodically\r
return Status;\r
}\r
\r
-\r
/**\r
Get the port status. This function is required to\r
ACK the port change bits although it will return\r
**/\r
EFI_STATUS\r
UsbRootHubGetPortStatus (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port,\r
- OUT EFI_USB_PORT_STATUS *PortState\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port,\r
+ OUT EFI_USB_PORT_STATUS *PortState\r
)\r
{\r
- USB_BUS *Bus;\r
- EFI_STATUS Status;\r
+ USB_BUS *Bus;\r
+ EFI_STATUS Status;\r
\r
- Bus = HubIf->Device->Bus;\r
- Status = UsbHcGetRootHubPortStatus (Bus, Port, PortState);\r
+ Bus = HubIf->Device->Bus;\r
+ Status = UsbHcGetRootHubPortStatus (Bus, Port, PortState);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Clear the port change status.\r
\r
**/\r
VOID\r
UsbRootHubClearPortChange (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port\r
)\r
{\r
EFI_USB_PORT_STATUS PortState;\r
Map = &mRootHubFeatureMap[Index];\r
\r
if (USB_BIT_IS_SET (PortState.PortChangeStatus, Map->ChangedBit)) {\r
- UsbHcClearRootHubPortFeature (HubIf->Device->Bus, Port, (EFI_USB_PORT_FEATURE) Map->Feature);\r
+ UsbHcClearRootHubPortFeature (HubIf->Device->Bus, Port, (EFI_USB_PORT_FEATURE)Map->Feature);\r
}\r
}\r
}\r
\r
-\r
/**\r
Set the root hub port feature.\r
\r
**/\r
EFI_STATUS\r
UsbRootHubSetPortFeature (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port,\r
- IN EFI_USB_PORT_FEATURE Feature\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port,\r
+ IN EFI_USB_PORT_FEATURE Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHcSetRootHubPortFeature (HubIf->Device->Bus, Port, Feature);\r
+ Status = UsbHcSetRootHubPortFeature (HubIf->Device->Bus, Port, Feature);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Clear the root hub port feature.\r
\r
**/\r
EFI_STATUS\r
UsbRootHubClearPortFeature (\r
- IN USB_INTERFACE *HubIf,\r
- IN UINT8 Port,\r
- IN EFI_USB_PORT_FEATURE Feature\r
+ IN USB_INTERFACE *HubIf,\r
+ IN UINT8 Port,\r
+ IN EFI_USB_PORT_FEATURE Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
- Status = UsbHcClearRootHubPortFeature (HubIf->Device->Bus, Port, Feature);\r
+ Status = UsbHcClearRootHubPortFeature (HubIf->Device->Bus, Port, Feature);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Interface function to reset the root hub port.\r
\r
**/\r
EFI_STATUS\r
UsbRootHubResetPort (\r
- IN USB_INTERFACE *RootIf,\r
- IN UINT8 Port\r
+ IN USB_INTERFACE *RootIf,\r
+ IN UINT8 Port\r
)\r
{\r
- USB_BUS *Bus;\r
- EFI_STATUS Status;\r
- EFI_USB_PORT_STATUS PortState;\r
- UINTN Index;\r
+ USB_BUS *Bus;\r
+ EFI_STATUS Status;\r
+ EFI_USB_PORT_STATUS PortState;\r
+ UINTN Index;\r
\r
//\r
// Notice: although EHCI requires that ENABLED bit be cleared\r
// when reset the port, we don't need to care that here. It\r
// should be handled in the EHCI driver.\r
//\r
- Bus = RootIf->Device->Bus;\r
+ Bus = RootIf->Device->Bus;\r
\r
- Status = UsbHcSetRootHubPortFeature (Bus, Port, EfiUsbPortReset);\r
+ Status = UsbHcSetRootHubPortFeature (Bus, Port, EfiUsbPortReset);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: failed to start reset on port %d\n", Port));\r
+ DEBUG ((DEBUG_ERROR, "UsbRootHubResetPort: failed to start reset on port %d\n", Port));\r
return Status;\r
}\r
\r
Status = UsbHcClearRootHubPortFeature (Bus, Port, EfiUsbPortReset);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: failed to clear reset on port %d\n", Port));\r
+ DEBUG ((DEBUG_ERROR, "UsbRootHubResetPort: failed to clear reset on port %d\n", Port));\r
return Status;\r
}\r
\r
// automatically enable the port, we need to enable it manually.\r
//\r
if (RootIf->MaxSpeed == EFI_USB_SPEED_HIGH) {\r
- DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: release low/full speed device (%d) to UHCI\n", Port));\r
+ DEBUG ((DEBUG_ERROR, "UsbRootHubResetPort: release low/full speed device (%d) to UHCI\n", Port));\r
\r
UsbRootHubSetPortFeature (RootIf, Port, EfiUsbPortOwner);\r
return EFI_NOT_FOUND;\r
-\r
} else {\r
-\r
Status = UsbRootHubSetPortFeature (RootIf, Port, EfiUsbPortEnable);\r
\r
if (EFI_ERROR (Status)) {\r
- DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: failed to enable port %d for UHCI\n", Port));\r
+ DEBUG ((DEBUG_ERROR, "UsbRootHubResetPort: failed to enable port %d for UHCI\n", Port));\r
return Status;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Release the root hub's control of the interface.\r
\r
**/\r
EFI_STATUS\r
UsbRootHubRelease (\r
- IN USB_INTERFACE *HubIf\r
+ IN USB_INTERFACE *HubIf\r
)\r
{\r
- DEBUG (( DEBUG_INFO, "UsbRootHubRelease: root hub released for hub %p\n", HubIf));\r
+ DEBUG ((DEBUG_INFO, "UsbRootHubRelease: root hub released for hub %p\n", HubIf));\r
\r
gBS->SetTimer (HubIf->HubNotify, TimerCancel, USB_ROOTHUB_POLL_INTERVAL);\r
gBS->CloseEvent (HubIf->HubNotify);\r
return EFI_SUCCESS;\r
}\r
\r
-USB_HUB_API mUsbHubApi = {\r
+USB_HUB_API mUsbHubApi = {\r
UsbHubInit,\r
UsbHubGetPortStatus,\r
UsbHubClearPortChange,\r
UsbHubRelease\r
};\r
\r
-USB_HUB_API mUsbRootHubApi = {\r
+USB_HUB_API mUsbRootHubApi = {\r
UsbRootHubInit,\r
UsbRootHubGetPortStatus,\r
UsbRootHubClearPortChange,\r