\r
**/\r
\r
-\r
#include "UsbBus.h"\r
\r
//\r
// Use a shor form Usb class Device Path, which could match any usb device, in WantedUsbIoDPList to indicate all Usb devices\r
// are wanted Usb devices\r
//\r
-USB_CLASS_FORMAT_DEVICE_PATH mAllUsbClassDevicePath = {\r
+USB_CLASS_FORMAT_DEVICE_PATH mAllUsbClassDevicePath = {\r
{\r
{\r
MESSAGING_DEVICE_PATH,\r
MSG_USB_CLASS_DP,\r
{\r
- (UINT8) (sizeof (USB_CLASS_DEVICE_PATH)),\r
- (UINT8) ((sizeof (USB_CLASS_DEVICE_PATH)) >> 8)\r
+ (UINT8)(sizeof (USB_CLASS_DEVICE_PATH)),\r
+ (UINT8)((sizeof (USB_CLASS_DEVICE_PATH)) >> 8)\r
}\r
},\r
0xffff, // VendorId\r
}\r
};\r
\r
-\r
/**\r
Get the capability of the host controller.\r
\r
**/\r
EFI_STATUS\r
UsbHcGetCapability (\r
- IN USB_BUS *UsbBus,\r
- OUT UINT8 *MaxSpeed,\r
- OUT UINT8 *NumOfPort,\r
- OUT UINT8 *Is64BitCapable\r
+ IN USB_BUS *UsbBus,\r
+ OUT UINT8 *MaxSpeed,\r
+ OUT UINT8 *NumOfPort,\r
+ OUT UINT8 *Is64BitCapable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->GetCapability (\r
- UsbBus->Usb2Hc,\r
- MaxSpeed,\r
- NumOfPort,\r
- Is64BitCapable\r
- );\r
-\r
+ UsbBus->Usb2Hc,\r
+ MaxSpeed,\r
+ NumOfPort,\r
+ Is64BitCapable\r
+ );\r
} else {\r
Status = UsbBus->UsbHc->GetRootHubPortNumber (UsbBus->UsbHc, NumOfPort);\r
\r
*MaxSpeed = EFI_USB_SPEED_FULL;\r
- *Is64BitCapable = (UINT8) FALSE;\r
+ *Is64BitCapable = (UINT8)FALSE;\r
}\r
\r
return Status;\r
}\r
\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
/**\r
Get the root hub port state.\r
\r
**/\r
EFI_STATUS\r
UsbHcGetRootHubPortStatus (\r
- IN USB_BUS *UsbBus,\r
- IN UINT8 PortIndex,\r
- OUT EFI_USB_PORT_STATUS *PortStatus\r
+ IN USB_BUS *UsbBus,\r
+ IN UINT8 PortIndex,\r
+ OUT EFI_USB_PORT_STATUS *PortStatus\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->GetRootHubPortStatus (UsbBus->Usb2Hc, PortIndex, PortStatus);\r
return Status;\r
}\r
\r
-\r
/**\r
Set the root hub port feature.\r
\r
**/\r
EFI_STATUS\r
UsbHcSetRootHubPortFeature (\r
- IN USB_BUS *UsbBus,\r
- IN UINT8 PortIndex,\r
- IN EFI_USB_PORT_FEATURE Feature\r
+ IN USB_BUS *UsbBus,\r
+ IN UINT8 PortIndex,\r
+ IN EFI_USB_PORT_FEATURE Feature\r
)\r
{\r
- EFI_STATUS Status;\r
-\r
+ EFI_STATUS Status;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->SetRootHubPortFeature (UsbBus->Usb2Hc, PortIndex, Feature);\r
return Status;\r
}\r
\r
-\r
/**\r
Clear the root hub port feature.\r
\r
**/\r
EFI_STATUS\r
UsbHcClearRootHubPortFeature (\r
- IN USB_BUS *UsbBus,\r
- IN UINT8 PortIndex,\r
- IN EFI_USB_PORT_FEATURE Feature\r
+ IN USB_BUS *UsbBus,\r
+ IN UINT8 PortIndex,\r
+ IN EFI_USB_PORT_FEATURE Feature\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->ClearRootHubPortFeature (UsbBus->Usb2Hc, PortIndex, Feature);\r
return Status;\r
}\r
\r
-\r
/**\r
Execute a control transfer to the device.\r
\r
OUT UINT32 *UsbResult\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN IsSlowDevice;\r
+ EFI_STATUS Status;\r
+ BOOLEAN IsSlowDevice;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->ControlTransfer (\r
Translator,\r
UsbResult\r
);\r
-\r
} else {\r
IsSlowDevice = (BOOLEAN)(EFI_USB_SPEED_LOW == DevSpeed);\r
- Status = UsbBus->UsbHc->ControlTransfer (\r
- UsbBus->UsbHc,\r
- DevAddr,\r
- IsSlowDevice,\r
- (UINT8) MaxPacket,\r
- Request,\r
- Direction,\r
- Data,\r
- DataLength,\r
- TimeOut,\r
- UsbResult\r
- );\r
+ Status = UsbBus->UsbHc->ControlTransfer (\r
+ UsbBus->UsbHc,\r
+ DevAddr,\r
+ IsSlowDevice,\r
+ (UINT8)MaxPacket,\r
+ Request,\r
+ Direction,\r
+ Data,\r
+ DataLength,\r
+ TimeOut,\r
+ UsbResult\r
+ );\r
}\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Execute a bulk transfer to the device's endpoint.\r
\r
OUT UINT32 *UsbResult\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->BulkTransfer (\r
UsbBus->UsbHc,\r
DevAddr,\r
EpAddr,\r
- (UINT8) MaxPacket,\r
+ (UINT8)MaxPacket,\r
*Data,\r
DataLength,\r
DataToggle,\r
return Status;\r
}\r
\r
-\r
/**\r
Queue or cancel an asynchronous interrupt transfer.\r
\r
IN VOID *Context OPTIONAL\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN IsSlowDevice;\r
+ EFI_STATUS Status;\r
+ BOOLEAN IsSlowDevice;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->AsyncInterruptTransfer (\r
DevAddr,\r
EpAddr,\r
IsSlowDevice,\r
- (UINT8) MaxPacket,\r
+ (UINT8)MaxPacket,\r
IsNewTransfer,\r
DataToggle,\r
PollingInterval,\r
return Status;\r
}\r
\r
-\r
/**\r
Execute a synchronous interrupt transfer to the target endpoint.\r
\r
OUT UINT32 *UsbResult\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN IsSlowDevice;\r
+ EFI_STATUS Status;\r
+ BOOLEAN IsSlowDevice;\r
\r
if (UsbBus->Usb2Hc != NULL) {\r
Status = UsbBus->Usb2Hc->SyncInterruptTransfer (\r
UsbResult\r
);\r
} else {\r
- IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DevSpeed) ? TRUE : FALSE);\r
- Status = UsbBus->UsbHc->SyncInterruptTransfer (\r
- UsbBus->UsbHc,\r
- DevAddr,\r
- EpAddr,\r
- IsSlowDevice,\r
- (UINT8) MaxPacket,\r
- Data,\r
- DataLength,\r
- DataToggle,\r
- TimeOut,\r
- UsbResult\r
- );\r
+ IsSlowDevice = (BOOLEAN)((EFI_USB_SPEED_LOW == DevSpeed) ? TRUE : FALSE);\r
+ Status = UsbBus->UsbHc->SyncInterruptTransfer (\r
+ UsbBus->UsbHc,\r
+ DevAddr,\r
+ EpAddr,\r
+ IsSlowDevice,\r
+ (UINT8)MaxPacket,\r
+ Data,\r
+ DataLength,\r
+ DataToggle,\r
+ TimeOut,\r
+ UsbResult\r
+ );\r
}\r
\r
return Status;\r
}\r
\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
/**\r
Open the USB host controller protocol BY_CHILD.\r
\r
**/\r
EFI_STATUS\r
UsbOpenHostProtoByChild (\r
- IN USB_BUS *Bus,\r
- IN EFI_HANDLE Child\r
+ IN USB_BUS *Bus,\r
+ IN EFI_HANDLE Child\r
)\r
{\r
- EFI_USB_HC_PROTOCOL *UsbHc;\r
- EFI_USB2_HC_PROTOCOL *Usb2Hc;\r
- EFI_STATUS Status;\r
+ EFI_USB_HC_PROTOCOL *UsbHc;\r
+ EFI_USB2_HC_PROTOCOL *Usb2Hc;\r
+ EFI_STATUS Status;\r
\r
if (Bus->Usb2Hc != NULL) {\r
Status = gBS->OpenProtocol (\r
Bus->HostHandle,\r
&gEfiUsb2HcProtocolGuid,\r
- (VOID **) &Usb2Hc,\r
+ (VOID **)&Usb2Hc,\r
mUsbBusDriverBinding.DriverBindingHandle,\r
Child,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
-\r
} else {\r
Status = gBS->OpenProtocol (\r
Bus->HostHandle,\r
&gEfiUsbHcProtocolGuid,\r
- (VOID **) &UsbHc,\r
+ (VOID **)&UsbHc,\r
mUsbBusDriverBinding.DriverBindingHandle,\r
Child,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
return Status;\r
}\r
\r
-\r
/**\r
Close the USB host controller protocol BY_CHILD.\r
\r
**/\r
VOID\r
UsbCloseHostProtoByChild (\r
- IN USB_BUS *Bus,\r
- IN EFI_HANDLE Child\r
+ IN USB_BUS *Bus,\r
+ IN EFI_HANDLE Child\r
)\r
{\r
if (Bus->Usb2Hc != NULL) {\r
mUsbBusDriverBinding.DriverBindingHandle,\r
Child\r
);\r
-\r
} else {\r
gBS->CloseProtocol (\r
Bus->HostHandle,\r
}\r
}\r
\r
-\r
/**\r
return the current TPL, copied from the EDKII glue lib.\r
\r
VOID\r
)\r
{\r
- EFI_TPL Tpl;\r
+ EFI_TPL Tpl;\r
\r
Tpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);\r
gBS->RestoreTPL (Tpl);\r
EFI_DEVICE_PATH_PROTOCOL *\r
EFIAPI\r
GetUsbDPFromFullDP (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
)\r
{\r
- EFI_DEVICE_PATH_PROTOCOL *UsbDevicePathPtr;\r
- EFI_DEVICE_PATH_PROTOCOL *UsbDevicePathBeginPtr;\r
- EFI_DEVICE_PATH_PROTOCOL *UsbDevicePathEndPtr;\r
- UINTN Size;\r
+ EFI_DEVICE_PATH_PROTOCOL *UsbDevicePathPtr;\r
+ EFI_DEVICE_PATH_PROTOCOL *UsbDevicePathBeginPtr;\r
+ EFI_DEVICE_PATH_PROTOCOL *UsbDevicePathEndPtr;\r
+ UINTN Size;\r
\r
//\r
// Get the Usb part first Begin node in full device path\r
//\r
UsbDevicePathBeginPtr = DevicePath;\r
- while ( (!IsDevicePathEnd (UsbDevicePathBeginPtr))&&\r
+ while ((!IsDevicePathEnd (UsbDevicePathBeginPtr)) &&\r
((UsbDevicePathBeginPtr->Type != MESSAGING_DEVICE_PATH) ||\r
- (UsbDevicePathBeginPtr->SubType != MSG_USB_DP &&\r
- UsbDevicePathBeginPtr->SubType != MSG_USB_CLASS_DP\r
+ ( UsbDevicePathBeginPtr->SubType != MSG_USB_DP &&\r
+ UsbDevicePathBeginPtr->SubType != MSG_USB_CLASS_DP\r
&& UsbDevicePathBeginPtr->SubType != MSG_USB_WWID_DP\r
- ))) {\r
-\r
- UsbDevicePathBeginPtr = NextDevicePathNode(UsbDevicePathBeginPtr);\r
+ )))\r
+ {\r
+ UsbDevicePathBeginPtr = NextDevicePathNode (UsbDevicePathBeginPtr);\r
}\r
\r
//\r
// Get the Usb part first End node in full device path\r
//\r
UsbDevicePathEndPtr = UsbDevicePathBeginPtr;\r
- while ((!IsDevicePathEnd (UsbDevicePathEndPtr))&&\r
+ while ((!IsDevicePathEnd (UsbDevicePathEndPtr)) &&\r
(UsbDevicePathEndPtr->Type == MESSAGING_DEVICE_PATH) &&\r
- (UsbDevicePathEndPtr->SubType == MSG_USB_DP ||\r
- UsbDevicePathEndPtr->SubType == MSG_USB_CLASS_DP\r
- || UsbDevicePathEndPtr->SubType == MSG_USB_WWID_DP\r
- )) {\r
-\r
- UsbDevicePathEndPtr = NextDevicePathNode(UsbDevicePathEndPtr);\r
+ ( UsbDevicePathEndPtr->SubType == MSG_USB_DP ||\r
+ UsbDevicePathEndPtr->SubType == MSG_USB_CLASS_DP\r
+ || UsbDevicePathEndPtr->SubType == MSG_USB_WWID_DP\r
+ ))\r
+ {\r
+ UsbDevicePathEndPtr = NextDevicePathNode (UsbDevicePathEndPtr);\r
}\r
\r
Size = GetDevicePathSize (UsbDevicePathBeginPtr);\r
Size -= GetDevicePathSize (UsbDevicePathEndPtr);\r
- if (Size ==0){\r
+ if (Size == 0) {\r
//\r
// The passed in DevicePath does not contain the usb nodes\r
//\r
//\r
// Append end device path node\r
//\r
- UsbDevicePathEndPtr = (EFI_DEVICE_PATH_PROTOCOL *) ((UINTN) UsbDevicePathPtr + Size);\r
+ UsbDevicePathEndPtr = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)UsbDevicePathPtr + Size);\r
SetDevicePathEndNode (UsbDevicePathEndPtr);\r
return UsbDevicePathPtr;\r
}\r
BOOLEAN\r
EFIAPI\r
SearchUsbDPInList (\r
- IN EFI_DEVICE_PATH_PROTOCOL *UsbDP,\r
- IN LIST_ENTRY *UsbIoDPList\r
+ IN EFI_DEVICE_PATH_PROTOCOL *UsbDP,\r
+ IN LIST_ENTRY *UsbIoDPList\r
)\r
{\r
- LIST_ENTRY *ListIndex;\r
- DEVICE_PATH_LIST_ITEM *ListItem;\r
- BOOLEAN Found;\r
- UINTN UsbDpDevicePathSize;\r
+ LIST_ENTRY *ListIndex;\r
+ DEVICE_PATH_LIST_ITEM *ListItem;\r
+ BOOLEAN Found;\r
+ UINTN UsbDpDevicePathSize;\r
\r
//\r
// Check that UsbDP and UsbIoDPList are valid\r
return FALSE;\r
}\r
\r
- Found = FALSE;\r
+ Found = FALSE;\r
ListIndex = UsbIoDPList->ForwardLink;\r
- while (ListIndex != UsbIoDPList){\r
- ListItem = CR(ListIndex, DEVICE_PATH_LIST_ITEM, Link, DEVICE_PATH_LIST_ITEM_SIGNATURE);\r
+ while (ListIndex != UsbIoDPList) {\r
+ ListItem = CR (ListIndex, DEVICE_PATH_LIST_ITEM, Link, DEVICE_PATH_LIST_ITEM_SIGNATURE);\r
//\r
// Compare DEVICE_PATH_LIST_ITEM.DevicePath[]\r
//\r
ASSERT (ListItem->DevicePath != NULL);\r
\r
- UsbDpDevicePathSize = GetDevicePathSize (UsbDP);\r
+ UsbDpDevicePathSize = GetDevicePathSize (UsbDP);\r
if (UsbDpDevicePathSize == GetDevicePathSize (ListItem->DevicePath)) {\r
if ((CompareMem (UsbDP, ListItem->DevicePath, UsbDpDevicePathSize)) == 0) {\r
Found = TRUE;\r
break;\r
}\r
}\r
+\r
ListIndex = ListIndex->ForwardLink;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
AddUsbDPToList (\r
- IN EFI_DEVICE_PATH_PROTOCOL *UsbDP,\r
- IN LIST_ENTRY *UsbIoDPList\r
+ IN EFI_DEVICE_PATH_PROTOCOL *UsbDP,\r
+ IN LIST_ENTRY *UsbIoDPList\r
)\r
{\r
- DEVICE_PATH_LIST_ITEM *ListItem;\r
+ DEVICE_PATH_LIST_ITEM *ListItem;\r
\r
//\r
// Check that UsbDP and UsbIoDPList are valid\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (SearchUsbDPInList (UsbDP, UsbIoDPList)){\r
+ if (SearchUsbDPInList (UsbDP, UsbIoDPList)) {\r
return EFI_SUCCESS;\r
}\r
\r
//\r
ListItem = AllocateZeroPool (sizeof (DEVICE_PATH_LIST_ITEM));\r
ASSERT (ListItem != NULL);\r
- ListItem->Signature = DEVICE_PATH_LIST_ITEM_SIGNATURE;\r
+ ListItem->Signature = DEVICE_PATH_LIST_ITEM_SIGNATURE;\r
ListItem->DevicePath = DuplicateDevicePath (UsbDP);\r
\r
InsertTailList (UsbIoDPList, &ListItem->Link);\r
BOOLEAN\r
EFIAPI\r
MatchUsbClass (\r
- IN USB_CLASS_DEVICE_PATH *UsbClassDevicePathPtr,\r
- IN USB_INTERFACE *UsbIf\r
+ IN USB_CLASS_DEVICE_PATH *UsbClassDevicePathPtr,\r
+ IN USB_INTERFACE *UsbIf\r
)\r
{\r
USB_INTERFACE_DESC *IfDesc;\r
EFI_USB_INTERFACE_DESCRIPTOR *ActIfDesc;\r
EFI_USB_DEVICE_DESCRIPTOR *DevDesc;\r
\r
-\r
if ((UsbClassDevicePathPtr->Header.Type != MESSAGING_DEVICE_PATH) ||\r
- (UsbClassDevicePathPtr->Header.SubType != MSG_USB_CLASS_DP)){\r
+ (UsbClassDevicePathPtr->Header.SubType != MSG_USB_CLASS_DP))\r
+ {\r
ASSERT (0);\r
return FALSE;\r
}\r
\r
- IfDesc = UsbIf->IfDesc;\r
+ IfDesc = UsbIf->IfDesc;\r
ASSERT (IfDesc->ActiveIndex < USB_MAX_INTERFACE_SETTING);\r
- ActIfDesc = &(IfDesc->Settings[IfDesc->ActiveIndex]->Desc);\r
- DevDesc = &(UsbIf->Device->DevDesc->Desc);\r
+ ActIfDesc = &(IfDesc->Settings[IfDesc->ActiveIndex]->Desc);\r
+ DevDesc = &(UsbIf->Device->DevDesc->Desc);\r
\r
//\r
// If connect class policy, determine whether to create device handle by the five fields\r
// In addition, hub interface is always matched for this policy.\r
//\r
if ((ActIfDesc->InterfaceClass == USB_HUB_CLASS_CODE) &&\r
- (ActIfDesc->InterfaceSubClass == USB_HUB_SUBCLASS_CODE)) {\r
+ (ActIfDesc->InterfaceSubClass == USB_HUB_SUBCLASS_CODE))\r
+ {\r
return TRUE;\r
}\r
\r
//\r
// If vendor id or product id is 0xffff, they will be ignored.\r
//\r
- if ((UsbClassDevicePathPtr->VendorId == 0xffff || UsbClassDevicePathPtr->VendorId == DevDesc->IdVendor) &&\r
- (UsbClassDevicePathPtr->ProductId == 0xffff || UsbClassDevicePathPtr->ProductId == DevDesc->IdProduct)) {\r
-\r
+ if (((UsbClassDevicePathPtr->VendorId == 0xffff) || (UsbClassDevicePathPtr->VendorId == DevDesc->IdVendor)) &&\r
+ ((UsbClassDevicePathPtr->ProductId == 0xffff) || (UsbClassDevicePathPtr->ProductId == DevDesc->IdProduct)))\r
+ {\r
//\r
// If Class in Device Descriptor is set to 0, the counterparts in interface should be checked.\r
//\r
if (DevDesc->DeviceClass == 0) {\r
- if ((UsbClassDevicePathPtr->DeviceClass == ActIfDesc->InterfaceClass ||\r
- UsbClassDevicePathPtr->DeviceClass == 0xff) &&\r
- (UsbClassDevicePathPtr->DeviceSubClass == ActIfDesc->InterfaceSubClass ||\r
- UsbClassDevicePathPtr->DeviceSubClass == 0xff) &&\r
- (UsbClassDevicePathPtr->DeviceProtocol == ActIfDesc->InterfaceProtocol ||\r
- UsbClassDevicePathPtr->DeviceProtocol == 0xff)) {\r
+ if (((UsbClassDevicePathPtr->DeviceClass == ActIfDesc->InterfaceClass) ||\r
+ (UsbClassDevicePathPtr->DeviceClass == 0xff)) &&\r
+ ((UsbClassDevicePathPtr->DeviceSubClass == ActIfDesc->InterfaceSubClass) ||\r
+ (UsbClassDevicePathPtr->DeviceSubClass == 0xff)) &&\r
+ ((UsbClassDevicePathPtr->DeviceProtocol == ActIfDesc->InterfaceProtocol) ||\r
+ (UsbClassDevicePathPtr->DeviceProtocol == 0xff)))\r
+ {\r
return TRUE;\r
}\r
-\r
- } else if ((UsbClassDevicePathPtr->DeviceClass == DevDesc->DeviceClass ||\r
- UsbClassDevicePathPtr->DeviceClass == 0xff) &&\r
- (UsbClassDevicePathPtr->DeviceSubClass == DevDesc->DeviceSubClass ||\r
- UsbClassDevicePathPtr->DeviceSubClass == 0xff) &&\r
- (UsbClassDevicePathPtr->DeviceProtocol == DevDesc->DeviceProtocol ||\r
- UsbClassDevicePathPtr->DeviceProtocol == 0xff)) {\r
-\r
+ } else if (((UsbClassDevicePathPtr->DeviceClass == DevDesc->DeviceClass) ||\r
+ (UsbClassDevicePathPtr->DeviceClass == 0xff)) &&\r
+ ((UsbClassDevicePathPtr->DeviceSubClass == DevDesc->DeviceSubClass) ||\r
+ (UsbClassDevicePathPtr->DeviceSubClass == 0xff)) &&\r
+ ((UsbClassDevicePathPtr->DeviceProtocol == DevDesc->DeviceProtocol) ||\r
+ (UsbClassDevicePathPtr->DeviceProtocol == 0xff)))\r
+ {\r
return TRUE;\r
}\r
}\r
**/\r
BOOLEAN\r
MatchUsbWwid (\r
- IN USB_WWID_DEVICE_PATH *UsbWWIDDevicePathPtr,\r
- IN USB_INTERFACE *UsbIf\r
+ IN USB_WWID_DEVICE_PATH *UsbWWIDDevicePathPtr,\r
+ IN USB_INTERFACE *UsbIf\r
)\r
{\r
USB_INTERFACE_DESC *IfDesc;\r
UINTN Length;\r
\r
if ((UsbWWIDDevicePathPtr->Header.Type != MESSAGING_DEVICE_PATH) ||\r
- (UsbWWIDDevicePathPtr->Header.SubType != MSG_USB_WWID_DP )){\r
+ (UsbWWIDDevicePathPtr->Header.SubType != MSG_USB_WWID_DP))\r
+ {\r
ASSERT (0);\r
return FALSE;\r
}\r
\r
- IfDesc = UsbIf->IfDesc;\r
+ IfDesc = UsbIf->IfDesc;\r
ASSERT (IfDesc->ActiveIndex < USB_MAX_INTERFACE_SETTING);\r
- ActIfDesc = &(IfDesc->Settings[IfDesc->ActiveIndex]->Desc);\r
- DevDesc = &(UsbIf->Device->DevDesc->Desc);\r
+ ActIfDesc = &(IfDesc->Settings[IfDesc->ActiveIndex]->Desc);\r
+ DevDesc = &(UsbIf->Device->DevDesc->Desc);\r
\r
//\r
// In addition, Hub interface is always matched for this policy.\r
//\r
if ((ActIfDesc->InterfaceClass == USB_HUB_CLASS_CODE) &&\r
- (ActIfDesc->InterfaceSubClass == USB_HUB_SUBCLASS_CODE)) {\r
+ (ActIfDesc->InterfaceSubClass == USB_HUB_SUBCLASS_CODE))\r
+ {\r
return TRUE;\r
}\r
\r
//\r
if ((DevDesc->IdVendor != UsbWWIDDevicePathPtr->VendorId) ||\r
(DevDesc->IdProduct != UsbWWIDDevicePathPtr->ProductId) ||\r
- (ActIfDesc->InterfaceNumber != UsbWWIDDevicePathPtr->InterfaceNumber)) {\r
+ (ActIfDesc->InterfaceNumber != UsbWWIDDevicePathPtr->InterfaceNumber))\r
+ {\r
return FALSE;\r
}\r
\r
//\r
// Serial number in USB WWID device path is the last 64-or-less UTF-16 characters.\r
//\r
- CompareStr = (CHAR16 *) (UINTN) (UsbWWIDDevicePathPtr + 1);\r
+ CompareStr = (CHAR16 *)(UINTN)(UsbWWIDDevicePathPtr + 1);\r
CompareLen = (DevicePathNodeLength (UsbWWIDDevicePathPtr) - sizeof (USB_WWID_DEVICE_PATH)) / sizeof (CHAR16);\r
if (CompareStr[CompareLen - 1] == L'\0') {\r
CompareLen--;\r
\r
Length = (StrDesc->Length - 2) / sizeof (CHAR16);\r
if ((Length >= CompareLen) &&\r
- (CompareMem (StrDesc->String + Length - CompareLen, CompareStr, CompareLen * sizeof (CHAR16)) == 0)) {\r
+ (CompareMem (StrDesc->String + Length - CompareLen, CompareStr, CompareLen * sizeof (CHAR16)) == 0))\r
+ {\r
return TRUE;\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
UsbBusFreeUsbDPList (\r
- IN LIST_ENTRY *UsbIoDPList\r
+ IN LIST_ENTRY *UsbIoDPList\r
)\r
{\r
- LIST_ENTRY *ListIndex;\r
- DEVICE_PATH_LIST_ITEM *ListItem;\r
+ LIST_ENTRY *ListIndex;\r
+ DEVICE_PATH_LIST_ITEM *ListItem;\r
\r
//\r
// Check that ControllerHandle is a valid handle\r
}\r
\r
ListIndex = UsbIoDPList->ForwardLink;\r
- while (ListIndex != UsbIoDPList){\r
- ListItem = CR(ListIndex, DEVICE_PATH_LIST_ITEM, Link, DEVICE_PATH_LIST_ITEM_SIGNATURE);\r
+ while (ListIndex != UsbIoDPList) {\r
+ ListItem = CR (ListIndex, DEVICE_PATH_LIST_ITEM, Link, DEVICE_PATH_LIST_ITEM_SIGNATURE);\r
//\r
// Free DEVICE_PATH_LIST_ITEM.DevicePath[]\r
//\r
- if (ListItem->DevicePath != NULL){\r
- FreePool(ListItem->DevicePath);\r
+ if (ListItem->DevicePath != NULL) {\r
+ FreePool (ListItem->DevicePath);\r
}\r
+\r
//\r
// Free DEVICE_PATH_LIST_ITEM itself\r
//\r
EFI_STATUS\r
EFIAPI\r
UsbBusAddWantedUsbIoDP (\r
- IN EFI_USB_BUS_PROTOCOL *UsbBusId,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_USB_BUS_PROTOCOL *UsbBusId,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- USB_BUS *Bus;\r
- EFI_STATUS Status;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePathPtr;\r
+ USB_BUS *Bus;\r
+ EFI_STATUS Status;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePathPtr;\r
\r
//\r
// Check whether remaining device path is valid\r
//\r
- if (RemainingDevicePath != NULL && !IsDevicePathEnd (RemainingDevicePath)) {\r
+ if ((RemainingDevicePath != NULL) && !IsDevicePathEnd (RemainingDevicePath)) {\r
if ((RemainingDevicePath->Type != MESSAGING_DEVICE_PATH) ||\r
- (RemainingDevicePath->SubType != MSG_USB_DP &&\r
- RemainingDevicePath->SubType != MSG_USB_CLASS_DP\r
- && RemainingDevicePath->SubType != MSG_USB_WWID_DP\r
- )) {\r
+ ( (RemainingDevicePath->SubType != MSG_USB_DP) &&\r
+ (RemainingDevicePath->SubType != MSG_USB_CLASS_DP)\r
+ && (RemainingDevicePath->SubType != MSG_USB_WWID_DP)\r
+ ))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
\r
- if (UsbBusId == NULL){\r
+ if (UsbBusId == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
Status = UsbBusFreeUsbDPList (&Bus->WantedUsbIoDPList);\r
ASSERT (!EFI_ERROR (Status));\r
- DevicePathPtr = DuplicateDevicePath ((EFI_DEVICE_PATH_PROTOCOL *) &mAllUsbClassDevicePath);\r
+ DevicePathPtr = DuplicateDevicePath ((EFI_DEVICE_PATH_PROTOCOL *)&mAllUsbClassDevicePath);\r
} else if (!IsDevicePathEnd (RemainingDevicePath)) {\r
//\r
// If RemainingDevicePath isn't the End of Device Path Node,\r
BOOLEAN\r
EFIAPI\r
UsbBusIsWantedUsbIO (\r
- IN USB_BUS *Bus,\r
- IN USB_INTERFACE *UsbIf\r
+ IN USB_BUS *Bus,\r
+ IN USB_INTERFACE *UsbIf\r
)\r
{\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePathPtr;\r
- LIST_ENTRY *WantedUsbIoDPListPtr;\r
- LIST_ENTRY *WantedListIndex;\r
- DEVICE_PATH_LIST_ITEM *WantedListItem;\r
- BOOLEAN DoConvert;\r
- UINTN FirstDevicePathSize;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePathPtr;\r
+ LIST_ENTRY *WantedUsbIoDPListPtr;\r
+ LIST_ENTRY *WantedListIndex;\r
+ DEVICE_PATH_LIST_ITEM *WantedListItem;\r
+ BOOLEAN DoConvert;\r
+ UINTN FirstDevicePathSize;\r
\r
//\r
// Check whether passed in parameters are valid\r
if ((UsbIf == NULL) || (Bus == NULL)) {\r
return FALSE;\r
}\r
+\r
//\r
// Check whether UsbIf is Hub\r
//\r
//\r
// Check whether all Usb devices in this bus are wanted\r
//\r
- if (SearchUsbDPInList ((EFI_DEVICE_PATH_PROTOCOL *)&mAllUsbClassDevicePath, &Bus->WantedUsbIoDPList)){\r
+ if (SearchUsbDPInList ((EFI_DEVICE_PATH_PROTOCOL *)&mAllUsbClassDevicePath, &Bus->WantedUsbIoDPList)) {\r
return TRUE;\r
}\r
\r
DevicePathPtr = GetUsbDPFromFullDP (UsbIf->DevicePath);\r
ASSERT (DevicePathPtr != NULL);\r
\r
- DoConvert = FALSE;\r
+ DoConvert = FALSE;\r
WantedListIndex = WantedUsbIoDPListPtr->ForwardLink;\r
- while (WantedListIndex != WantedUsbIoDPListPtr){\r
- WantedListItem = CR(WantedListIndex, DEVICE_PATH_LIST_ITEM, Link, DEVICE_PATH_LIST_ITEM_SIGNATURE);\r
+ while (WantedListIndex != WantedUsbIoDPListPtr) {\r
+ WantedListItem = CR (WantedListIndex, DEVICE_PATH_LIST_ITEM, Link, DEVICE_PATH_LIST_ITEM_SIGNATURE);\r
ASSERT (WantedListItem->DevicePath->Type == MESSAGING_DEVICE_PATH);\r
switch (WantedListItem->DevicePath->SubType) {\r
- case MSG_USB_DP:\r
- FirstDevicePathSize = GetDevicePathSize (WantedListItem->DevicePath);\r
- if (FirstDevicePathSize == GetDevicePathSize (DevicePathPtr)) {\r
- if (CompareMem (\r
- WantedListItem->DevicePath,\r
- DevicePathPtr,\r
- GetDevicePathSize (DevicePathPtr)) == 0\r
- ) {\r
+ case MSG_USB_DP:\r
+ FirstDevicePathSize = GetDevicePathSize (WantedListItem->DevicePath);\r
+ if (FirstDevicePathSize == GetDevicePathSize (DevicePathPtr)) {\r
+ if (CompareMem (\r
+ WantedListItem->DevicePath,\r
+ DevicePathPtr,\r
+ GetDevicePathSize (DevicePathPtr)\r
+ ) == 0\r
+ )\r
+ {\r
+ DoConvert = TRUE;\r
+ }\r
+ }\r
+\r
+ break;\r
+ case MSG_USB_CLASS_DP:\r
+ if (MatchUsbClass ((USB_CLASS_DEVICE_PATH *)WantedListItem->DevicePath, UsbIf)) {\r
DoConvert = TRUE;\r
}\r
- }\r
- break;\r
- case MSG_USB_CLASS_DP:\r
- if (MatchUsbClass((USB_CLASS_DEVICE_PATH *)WantedListItem->DevicePath, UsbIf)) {\r
- DoConvert = TRUE;\r
- }\r
- break;\r
- case MSG_USB_WWID_DP:\r
- if (MatchUsbWwid((USB_WWID_DEVICE_PATH *)WantedListItem->DevicePath, UsbIf)) {\r
- DoConvert = TRUE;\r
- }\r
- break;\r
- default:\r
- ASSERT (0);\r
- break;\r
+\r
+ break;\r
+ case MSG_USB_WWID_DP:\r
+ if (MatchUsbWwid ((USB_WWID_DEVICE_PATH *)WantedListItem->DevicePath, UsbIf)) {\r
+ DoConvert = TRUE;\r
+ }\r
+\r
+ break;\r
+ default:\r
+ ASSERT (0);\r
+ break;\r
}\r
\r
if (DoConvert) {\r
\r
WantedListIndex = WantedListIndex->ForwardLink;\r
}\r
+\r
gBS->FreePool (DevicePathPtr);\r
\r
//\r
// Check whether the new Usb device path is wanted\r
//\r
- if (DoConvert){\r
+ if (DoConvert) {\r
return TRUE;\r
} else {\r
return FALSE;\r
EFI_STATUS\r
EFIAPI\r
UsbBusRecursivelyConnectWantedUsbIo (\r
- IN EFI_USB_BUS_PROTOCOL *UsbBusId\r
+ IN EFI_USB_BUS_PROTOCOL *UsbBusId\r
)\r
{\r
- USB_BUS *Bus;\r
- EFI_STATUS Status;\r
- UINTN Index;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
- USB_INTERFACE *UsbIf;\r
- UINTN UsbIoHandleCount;\r
- EFI_HANDLE *UsbIoBuffer;\r
- EFI_DEVICE_PATH_PROTOCOL *UsbIoDevicePath;\r
-\r
- if (UsbBusId == NULL){\r
+ USB_BUS *Bus;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
+ EFI_USB_IO_PROTOCOL *UsbIo;\r
+ USB_INTERFACE *UsbIf;\r
+ UINTN UsbIoHandleCount;\r
+ EFI_HANDLE *UsbIoBuffer;\r
+ EFI_DEVICE_PATH_PROTOCOL *UsbIoDevicePath;\r
+\r
+ if (UsbBusId == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
// Get all Usb IO handles in system\r
//\r
UsbIoHandleCount = 0;\r
- Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiUsbIoProtocolGuid, NULL, &UsbIoHandleCount, &UsbIoBuffer);\r
- if (Status == EFI_NOT_FOUND || UsbIoHandleCount == 0) {\r
+ Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiUsbIoProtocolGuid, NULL, &UsbIoHandleCount, &UsbIoBuffer);\r
+ if ((Status == EFI_NOT_FOUND) || (UsbIoHandleCount == 0)) {\r
return EFI_SUCCESS;\r
}\r
+\r
ASSERT (!EFI_ERROR (Status));\r
\r
for (Index = 0; Index < UsbIoHandleCount; Index++) {\r
// Note: The usb child handle maybe invalid because of hot plugged out during the loop\r
//\r
UsbIoDevicePath = NULL;\r
- Status = gBS->HandleProtocol (UsbIoBuffer[Index], &gEfiDevicePathProtocolGuid, (VOID *) &UsbIoDevicePath);\r
- if (EFI_ERROR (Status) || UsbIoDevicePath == NULL) {\r
+ Status = gBS->HandleProtocol (UsbIoBuffer[Index], &gEfiDevicePathProtocolGuid, (VOID *)&UsbIoDevicePath);\r
+ if (EFI_ERROR (Status) || (UsbIoDevicePath == NULL)) {\r
continue;\r
}\r
+\r
if (CompareMem (\r
- UsbIoDevicePath,\r
- Bus->DevicePath,\r
- (GetDevicePathSize (Bus->DevicePath) - sizeof (EFI_DEVICE_PATH_PROTOCOL))\r
- ) != 0) {\r
+ UsbIoDevicePath,\r
+ Bus->DevicePath,\r
+ (GetDevicePathSize (Bus->DevicePath) - sizeof (EFI_DEVICE_PATH_PROTOCOL))\r
+ ) != 0)\r
+ {\r
continue;\r
}\r
\r
//\r
// Get the child Usb IO interface\r
//\r
- Status = gBS->HandleProtocol(\r
- UsbIoBuffer[Index],\r
- &gEfiUsbIoProtocolGuid,\r
- (VOID **) &UsbIo\r
- );\r
+ Status = gBS->HandleProtocol (\r
+ UsbIoBuffer[Index],\r
+ &gEfiUsbIoProtocolGuid,\r
+ (VOID **)&UsbIo\r
+ );\r
if (EFI_ERROR (Status)) {\r
continue;\r
}\r
- UsbIf = USB_INTERFACE_FROM_USBIO (UsbIo);\r
+\r
+ UsbIf = USB_INTERFACE_FROM_USBIO (UsbIo);\r
\r
if (UsbBusIsWantedUsbIO (Bus, UsbIf)) {\r
if (!UsbIf->IsManaged) {\r
// Recursively connect the wanted Usb Io handle\r
//\r
DEBUG ((DEBUG_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is %d\n", (UINT32)UsbGetCurrentTpl ()));\r
- Status = gBS->ConnectController (UsbIf->Handle, NULL, NULL, TRUE);\r
- UsbIf->IsManaged = (BOOLEAN)!EFI_ERROR (Status);\r
- DEBUG ((DEBUG_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is %d\n", (UINT32)UsbGetCurrentTpl()));\r
+ Status = gBS->ConnectController (UsbIf->Handle, NULL, NULL, TRUE);\r
+ UsbIf->IsManaged = (BOOLEAN) !EFI_ERROR (Status);\r
+ DEBUG ((DEBUG_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is %d\n", (UINT32)UsbGetCurrentTpl ()));\r
}\r
}\r
}\r