]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c
Use TO_START and BY_START for UEFI driver model driver.
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / UhciDxe / Uhci.c
index d2178cd1d7c7b35a64627376f7e6a5c9f0c0563e..a4110b75a2a0323ded4afd68c1f871844d045a2c 100644 (file)
@@ -15,6 +15,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \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
@@ -308,7 +318,7 @@ Uhci2GetCapability (
 \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
@@ -623,6 +633,7 @@ Uhci2ControlTransfer (
   UINT8                   *DataPhy;\r
   VOID                    *DataMap;\r
   BOOLEAN                 IsSlowDevice;\r
+  UINTN                   TransferDataLength;\r
 \r
   Uhc         = UHC_FROM_USB2_HC_PROTO (This);\r
   TDs         = NULL;\r
@@ -650,10 +661,16 @@ Uhci2ControlTransfer (
     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
@@ -692,7 +709,7 @@ Uhci2ControlTransfer (
           PktId,\r
           RequestPhy,\r
           DataPhy,\r
-          *DataLength,\r
+          TransferDataLength,\r
           (UINT8) MaximumPacketLength,\r
           IsSlowDevice\r
           );\r
@@ -1480,7 +1497,7 @@ UhciAllocateDev (
   return Uhc;\r
 \r
 ON_ERROR:\r
-  gBS->FreePool (Uhc);\r
+  FreePool (Uhc);\r
   return NULL;\r
 }\r
 \r
@@ -1490,8 +1507,6 @@ ON_ERROR:
 \r
   @param  Uhc     The UHCI device to release.\r
 \r
-  @return None.\r
-\r
 **/\r
 VOID\r
 UhciFreeDev (\r
@@ -1510,7 +1525,7 @@ UhciFreeDev (
     FreeUnicodeStringTable (Uhc->CtrlNameTable);\r
   }\r
 \r
-  gBS->FreePool (Uhc);\r
+  FreePool (Uhc);\r
 }\r
 \r
 \r
@@ -1520,8 +1535,6 @@ UhciFreeDev (
   @param  Controller           Controller handle.\r
   @param  This                 Protocol instance pointer.\r
 \r
-  @return None.\r
-\r
 **/\r
 VOID\r
 UhciCleanDevUp (\r
@@ -1800,11 +1813,3 @@ UhciDriverBindingStop (
   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