/** @file\r
The module to produce Usb Bus PPI.\r
\r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions\r
NewPeiUsbDevice->DeviceSpeed = (UINT8)IsPortLowSpeedDeviceAttached (PortStatus.PortStatus);\r
\r
if(NewPeiUsbDevice->DeviceSpeed != EFI_USB_SPEED_HIGH) {\r
- if (PeiUsbDevice->DeviceSpeed == EFI_USB_SPEED_HIGH) {\r
- NewPeiUsbDevice->Translator.TranslatorPortNumber = (UINT8)Index;\r
- NewPeiUsbDevice->Translator.TranslatorHubAddress = *CurrentAddress;\r
- } else {\r
- CopyMem(&(NewPeiUsbDevice->Translator), &(PeiUsbDevice->Translator), sizeof(EFI_USB2_HC_TRANSACTION_TRANSLATOR));\r
+ if (PeiUsbDevice->DeviceSpeed == EFI_USB_SPEED_HIGH) {\r
+ NewPeiUsbDevice->Translator.TranslatorPortNumber = (UINT8)Index;\r
+ NewPeiUsbDevice->Translator.TranslatorHubAddress = *CurrentAddress;\r
+ } else {\r
+ CopyMem(&(NewPeiUsbDevice->Translator), &(PeiUsbDevice->Translator), sizeof(EFI_USB2_HC_TRANSACTION_TRANSLATOR));\r
}\r
- }\r
+ }\r
\r
//\r
// Configure that Usb Device\r
\r
\r
CurrentAddress = 0;\r
- if (Usb2HcPpi != NULL){\r
+ if (Usb2HcPpi != NULL) {\r
Usb2HcPpi->GetRootHubPortNumber (\r
PeiServices,\r
Usb2HcPpi,\r
(UINT8 *) &NumOfRootPort\r
); \r
- } else {\r
+ } else if (UsbHcPpi != NULL) {\r
UsbHcPpi->GetRootHubPortNumber (\r
PeiServices,\r
UsbHcPpi,\r
(UINT8 *) &NumOfRootPort\r
);\r
+ } else {\r
+ ASSERT (FALSE);\r
+ return EFI_INVALID_PARAMETER;\r
}\r
\r
for (Index = 0; Index < NumOfRootPort; Index++) {\r
//\r
KeyCode = EfiKeyToUsbKeyCodeConvertionTable [(UINT8) (TempKey.Key)];\r
TableEntry = GetKeyDescriptor (UsbKeyboardDevice, KeyCode);\r
+ if (TableEntry == NULL) {\r
+ ReleaseKeyboardLayoutResources (UsbKeyboardDevice);\r
+ FreePool (KeyboardLayout);\r
+ return;\r
+ }\r
CopyMem (TableEntry, KeyDescriptor, sizeof (EFI_KEY_DESCRIPTOR));\r
\r
//\r
// For non-spacing key, create the list with a non-spacing key followed by physical keys.\r
//\r
if (TempKey.Modifier == EFI_NS_KEY_MODIFIER) {\r
- UsbNsKey = AllocatePool (sizeof (USB_NS_KEY));\r
+ UsbNsKey = AllocateZeroPool (sizeof (USB_NS_KEY));\r
ASSERT (UsbNsKey != NULL);\r
\r
//\r