\r
#include "Uhci.h"\r
\r
+\r
+EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding = {\r
+ UhciDriverBindingSupported,\r
+ UhciDriverBindingStart,\r
+ UhciDriverBindingStop,\r
+ 0x20,\r
+ NULL,\r
+ NULL\r
+};\r
+\r
/**\r
Provides software reset for the USB host controller according to UEFI 2.0 spec.\r
\r
\r
Uhc->RootPorts = *PortNumber;\r
\r
- DEBUG ((EFI_D_INFO, "Uhci2GetCapability: %d ports\n", Uhc->RootPorts));\r
+ DEBUG ((EFI_D_INFO, "Uhci2GetCapability: %d ports\n", (UINT32)Uhc->RootPorts));\r
return EFI_SUCCESS;\r
}\r
\r
UINT8 *DataPhy;\r
VOID *DataMap;\r
BOOLEAN IsSlowDevice;\r
+ UINTN TransferDataLength;\r
\r
Uhc = UHC_FROM_USB2_HC_PROTO (This);\r
TDs = NULL;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if ((TransferDirection != EfiUsbNoData) && (DataLength == NULL)) {\r
+ if ((TransferDirection != EfiUsbNoData) && (Data == NULL || DataLength == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ if (TransferDirection == EfiUsbNoData) {\r
+ TransferDataLength = 0;\r
+ } else {\r
+ TransferDataLength = *DataLength;\r
+ }\r
+\r
*TransferResult = EFI_USB_ERR_SYSTEM;\r
Status = EFI_DEVICE_ERROR;\r
\r
PktId,\r
RequestPhy,\r
DataPhy,\r
- *DataLength,\r
+ TransferDataLength,\r
(UINT8) MaximumPacketLength,\r
IsSlowDevice\r
);\r
return Uhc;\r
\r
ON_ERROR:\r
- gBS->FreePool (Uhc);\r
+ FreePool (Uhc);\r
return NULL;\r
}\r
\r
\r
@param Uhc The UHCI device to release.\r
\r
- @return None.\r
-\r
**/\r
VOID\r
UhciFreeDev (\r
FreeUnicodeStringTable (Uhc->CtrlNameTable);\r
}\r
\r
- gBS->FreePool (Uhc);\r
+ FreePool (Uhc);\r
}\r
\r
\r
@param Controller Controller handle.\r
@param This Protocol instance pointer.\r
\r
- @return None.\r
-\r
**/\r
VOID\r
UhciCleanDevUp (\r
return EFI_SUCCESS;\r
}\r
\r
-EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding = {\r
- UhciDriverBindingSupported,\r
- UhciDriverBindingStart,\r
- UhciDriverBindingStop,\r
- 0x20,\r
- NULL,\r
- NULL\r
-};\r