]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/UefiUsbLib/UsbDxeLib.c
Code Scrub:
[mirror_edk2.git] / MdePkg / Library / UefiUsbLib / UsbDxeLib.c
index 18fe37c381d4ff11fd20f72ddc1c2786e2184a34..a15ef6ebefc5db582c8a19576cbf811581240a6b 100644 (file)
 \r
 \r
 /**\r
-  Usb Get Descriptor.\r
-\r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Value                  Device Request Value.\r
-  @param  Index                  Device Request Index.\r
-  @param  DescriptorLength       Descriptor Length.\r
-  @param  Descriptor             Descriptor buffer to contain result.\r
-  @param  Status                 Transfer Status.\r
-\r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  Get the descriptor of the specified USB device.\r
+\r
+  Submit a USB get descriptor request for the USB device specified by UsbIo, Value,\r
+  and Index, and return the descriptor in the buffer specified by Descriptor.\r
+  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Descriptor is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
+\r
+  @param  UsbIo             A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Value             The device request value.\r
+  @param  Index             The device request index.\r
+  @param  DescriptorLength  The size, in bytes, of Descriptor.\r
+  @param  Descriptor        A pointer to the descriptor buffer to get.\r
+  @param  Status            A pointer to the status of the transfer.\r
+\r
+  @retval EFI_SUCCESS           The request executed successfully.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed because the\r
+                                buffer specifed by DescriptorLength and Descriptor\r
+                                is not large enough to hold the result of the request.\r
+  @retval EFI_TIMEOUT           A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR      The request failed due to a device error. The transfer\r
+                                status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -46,9 +57,9 @@ UsbGetDescriptor (
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Descriptor != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
@@ -71,18 +82,26 @@ UsbGetDescriptor (
 \r
 \r
 /**\r
-  Usb Set Descriptor.\r
-\r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Value                  Device Request Value.\r
-  @param  Index                  Device Request Index.\r
-  @param  DescriptorLength       Descriptor Length.\r
-  @param  Descriptor             Descriptor buffer to set.\r
-  @param  Status                 Transfer Status.\r
-\r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  Set the descriptor of the specified USB device.\r
+\r
+  Submit a USB set descriptor request for the USB device specified by UsbIo,\r
+  Value, and Index, and set the descriptor using the buffer specified by DesriptorLength\r
+  and Descriptor.  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Descriptor is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
+\r
+  @param  UsbIo             A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Value             The device request value.\r
+  @param  Index             The device request index.\r
+  @param  DescriptorLength  The size, in bytes, of Descriptor.\r
+  @param  Descriptor        A pointer to the descriptor buffer to set.\r
+  @param  Status            A pointer to the status of the transfer.\r
+\r
+  @retval  EFI_SUCCESS       The request executed successfully.\r
+  @retval  EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval  EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                             The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -98,9 +117,9 @@ UsbSetDescriptor (
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Descriptor != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
@@ -123,38 +142,46 @@ UsbSetDescriptor (
 \r
 \r
 /**\r
-  Usb Get Device Interface.\r
+  Get the interface setting of the specified USB device.\r
 \r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Index                  Interface index value.\r
-  @param  AltSetting             Alternate setting.\r
-  @param  Status                 Trasnsfer status.\r
+  Submit a USB get interface request for the USB device specified by UsbIo,\r
+  and Interface, and place the result in the buffer specified by AlternateSetting.\r
+  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If AlternateSetting is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
 \r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  @param  UsbIo             A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Interface         The interface index value.\r
+  @param  AlternateSetting  A pointer to the alternate setting to be retrieved.\r
+  @param  Status            A pointer to the status of the transfer.\r
+\r
+  @retval EFI_SUCCESS       The request executed successfully.\r
+  @retval EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                            The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbGetInterface (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINT16                  Index,\r
-  OUT UINT8                   *AltSetting,\r
+  IN  UINT16                  Interface,\r
+  OUT UINT8                   *AlternateSetting,\r
   OUT UINT32                  *Status\r
   )\r
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (AlternateSetting != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
   DevReq.RequestType  = USB_DEV_GET_INTERFACE_REQ_TYPE;\r
   DevReq.Request      = USB_REQ_GET_INTERFACE;\r
-  DevReq.Index        = Index;\r
+  DevReq.Index        = Interface;\r
   DevReq.Length       = 1;\r
 \r
   return UsbIo->UsbControlTransfer (\r
@@ -162,7 +189,7 @@ UsbGetInterface (
                   &DevReq,\r
                   EfiUsbDataIn,\r
                   TIMEOUT_VALUE,\r
-                  AltSetting,\r
+                  AlternateSetting,\r
                   1,\r
                   Status\r
                   );\r
@@ -170,40 +197,45 @@ UsbGetInterface (
 \r
 \r
 /**\r
-  Usb Set Device Interface.\r
+  Set the interface setting of the specified USB device.\r
 \r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  InterfaceNo            Interface Number.\r
-  @param  AltSetting             Alternate setting.\r
-  @param  Status                 Trasnsfer status.\r
+  Submit a USB set interface request for the USB device specified by UsbIo, and\r
+  Interface, and set the alternate setting to the value specified by AlternateSetting.\r
+  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
 \r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  @param  UsbIo             A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Interface         The interface index value.\r
+  @param  AlternateSetting  The alternate setting to be set.\r
+  @param  Status            A pointer to the status of the transfer.\r
+\r
+  @retval EFI_SUCCESS  The request executed successfully.\r
+  @retval EFI_TIMEOUT  A timeout occurred executing the request.\r
+  @retval EFI_SUCCESS  The request failed due to a device error.\r
+                       The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbSetInterface (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINT16                  InterfaceNo,\r
-  IN  UINT16                  AltSetting,\r
+  IN  UINT16                  Interface,\r
+  IN  UINT16                  AlternateSetting,\r
   OUT UINT32                  *Status\r
   )\r
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
   DevReq.RequestType  = USB_DEV_SET_INTERFACE_REQ_TYPE;\r
   DevReq.Request      = USB_REQ_SET_INTERFACE;\r
-  DevReq.Value        = AltSetting;\r
-  DevReq.Index        = InterfaceNo;\r
-\r
+  DevReq.Value        = AlternateSetting;\r
+  DevReq.Index        = Interface;\r
 \r
   return UsbIo->UsbControlTransfer (\r
                   UsbIo,\r
@@ -218,30 +250,38 @@ UsbSetInterface (
 \r
 \r
 /**\r
-  Usb Get Device Configuration.\r
+  Get the device configuration.\r
+\r
+  Submit a USB get configuration request for the USB device specified by UsbIo\r
+  and place the result in the buffer specified by ConfigurationValue. The status\r
+  of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If ConfigurationValue is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
 \r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  ConfigValue            Config Value.\r
-  @param  Status                 Transfer Status.\r
+  @param  UsbIo               A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  ConfigurationValue  A pointer to the device configuration to be retrieved.\r
+  @param  Status              A pointer to the status of the transfer.\r
 \r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  @retval EFI_SUCCESS        The request executed successfully.\r
+  @retval EFI_TIMEOUT        A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR   The request failed due to a device error.\r
+                             The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbGetConfiguration (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  OUT UINT8                   *ConfigValue,\r
+  OUT UINT8                   *ConfigurationValue,\r
   OUT UINT32                  *Status\r
   )\r
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (ConfigurationValue != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
@@ -254,7 +294,7 @@ UsbGetConfiguration (
                   &DevReq,\r
                   EfiUsbDataIn,\r
                   TIMEOUT_VALUE,\r
-                  ConfigValue,\r
+                  ConfigurationValue,\r
                   1,\r
                   Status\r
                   );\r
@@ -262,36 +302,42 @@ UsbGetConfiguration (
 \r
 \r
 /**\r
-  Usb Set Device Configuration.\r
+  Set the device configuration.\r
+\r
+  Submit a USB set configuration request for the USB device specified by UsbIo\r
+  and set the device configuration to the value specified by ConfigurationValue.\r
+  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
 \r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Value                  Configuration Value to set.\r
-  @param  Status                 Transfer status.\r
+  @param  UsbIo               A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  ConfigurationValue  The device configuration value to be set.\r
+  @param  Status              A pointer to the status of the transfer.\r
 \r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  @retval EFI_SUCCESS       The request executed successfully.\r
+  @retval EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                            The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbSetConfiguration (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINT16                  Value,\r
+  IN  UINT16                  ConfigurationValue,\r
   OUT UINT32                  *Status\r
   )\r
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
   DevReq.RequestType  = USB_DEV_SET_CONFIGURATION_REQ_TYPE;\r
   DevReq.Request      = USB_REQ_SET_CONFIG;\r
-  DevReq.Value        = Value;\r
+  DevReq.Value        = ConfigurationValue;\r
 \r
   return UsbIo->UsbControlTransfer (\r
                   UsbIo,\r
@@ -306,24 +352,33 @@ UsbSetConfiguration (
 \r
 \r
 /**\r
-  Usb Set Device Feature.\r
-\r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Recipient              Interface/Device/Endpoint.\r
-  @param  Value                  Request value.\r
-  @param  Target                 Request Index.\r
-  @param  Status                 Transfer status.\r
-\r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  Set the specified feature of the specified device.\r
+\r
+  Submit a USB set device feature request for the USB device specified by UsbIo,\r
+  Recipient, and Target to the value specified by Value.  The status of the\r
+  transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
+\r
+  @param  UsbIo      A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Recipient  The USB data recipient type (i.e. Device, Interface, Endpoint).\r
+                     Type USB_TYPES_DEFINITION is defined in the MDE Package Industry\r
+                     Standard include file Usb.h.\r
+  @param  Value      The value of the feature to be set.\r
+  @param  Target     The index of the device to be set.\r
+  @param  Status     A pointer to the status of the transfer.\r
+\r
+  @retval EFI_SUCCESS       The request executed successfully.\r
+  @retval EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                            The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbSetFeature (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINTN       Recipient,\r
+  IN  USB_TYPES_DEFINITION    Recipient,\r
   IN  UINT16                  Value,\r
   IN  UINT16                  Target,\r
   OUT UINT32                  *Status\r
@@ -331,9 +386,8 @@ UsbSetFeature (
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
@@ -372,24 +426,33 @@ UsbSetFeature (
 \r
 \r
 /**\r
-  Usb Clear Device Feature.\r
-\r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Recipient              Interface/Device/Endpoint.\r
-  @param  Value                  Request value.\r
-  @param  Target                 Request Index.\r
-  @param  Status                 Transfer status.\r
-\r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  Clear the specified feature of the specified device.\r
+\r
+  Submit a USB clear device feature request for the USB device specified by UsbIo,\r
+  Recipient, and Target to the value specified by Value.  The status of the transfer\r
+  is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
+\r
+  @param  UsbIo      A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Recipient  The USB data recipient type (i.e. Device, Interface, Endpoint).\r
+                     Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard\r
+                     include file Usb.h.\r
+  @param  Value      The value of the feature to be cleared.\r
+  @param  Target     The index of the device to be cleared.\r
+  @param  Status     A pointer to the status of the transfer.\r
+\r
+  @retval EFI_SUCCESS       The request executed successfully.\r
+  @retval EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                            The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbClearFeature (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINTN       Recipient,\r
+  IN  USB_TYPES_DEFINITION    Recipient,\r
   IN  UINT16                  Value,\r
   IN  UINT16                  Target,\r
   OUT UINT32                  *Status\r
@@ -397,9 +460,9 @@ UsbClearFeature (
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Status != NULL);\r
+\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
@@ -438,34 +501,44 @@ UsbClearFeature (
 \r
 \r
 /**\r
-  Usb Get Device Status.\r
-\r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  Recipient              Interface/Device/Endpoint.\r
-  @param  Target                 Request index.\r
-  @param  DevStatus              Device status.\r
-  @param  Status                 Transfer status.\r
-\r
-  @retval EFI_INVALID_PARAMETER  Parameter is error.\r
-  @retval EFI_SUCCESS            Success.\r
-  @retval EFI_TIMEOUT            Device has no response.\r
+  Get the status of the specified device.\r
+\r
+  Submit a USB device get status request for the USB device specified by UsbIo,\r
+  Recipient, and Target and place the result in the buffer specified by DeviceStatus.\r
+  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If DeviceStatus is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
+\r
+  @param  UsbIo         A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Recipient     The USB data recipient type (i.e. Device, Interface, Endpoint).\r
+                        Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard\r
+                        include file Usb.h.\r
+  @param  Target        The index of the device to be get the status of.\r
+  @param  DeviceStatus  A pointer to the device status to be retrieved.\r
+  @param  Status        A pointer to the status of the transfer.\r
+\r
+  @retval EFI_SUCCESS       The request executed successfully.\r
+  @retval EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                            The transfer status is returned in Status.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbGetStatus (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINTN       Recipient,\r
+  IN  USB_TYPES_DEFINITION    Recipient,\r
   IN  UINT16                  Target,\r
-  OUT UINT16                  *DevStatus,\r
+  OUT UINT16                  *DeviceStatus,\r
   OUT UINT32                  *Status\r
   )\r
 {\r
   EFI_USB_DEVICE_REQUEST  DevReq;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (DeviceStatus != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
 \r
@@ -496,7 +569,7 @@ UsbGetStatus (
                   &DevReq,\r
                   EfiUsbDataIn,\r
                   TIMEOUT_VALUE,\r
-                  DevStatus,\r
+                  DeviceStatus,\r
                   2,\r
                   Status\r
                   );\r
@@ -504,22 +577,31 @@ UsbGetStatus (
 \r
 \r
 /**\r
-  Clear endpoint stall.\r
+  Clear halt feature of the specified usb endpoint.\r
+\r
+  Retrieve the USB endpoint descriptor specified by UsbIo and EndPoint.\r
+  If the USB endpoint descriptor can not be retrieved, then return EFI_NOT_FOUND.\r
+  If the endpoint descriptor is found, then clear the halt fature of this USB endpoint.\r
+  The status of the transfer is returned in Status.\r
+  If UsbIo is NULL, then ASSERT().\r
+  If Status is NULL, then ASSERT().\r
 \r
-  @param  UsbIo                  EFI_USB_IO_PROTOCOL.\r
-  @param  EndpointNo             Endpoint Number.\r
-  @param  Status                 Transfer Status.\r
+  @param  UsbIo     A pointer to the USB I/O Protocol instance for the specific USB target.\r
+  @param  Endpoint  The endpoint address.\r
+  @param  Status    A pointer to the status of the transfer.\r
 \r
-  @retval EFI_NOT_FOUND          Can't find the Endpoint.\r
-  @retval EFI_DEVICE_ERROR       Hardware error.\r
-  @retval EFI_SUCCESS            Success.\r
+  @retval EFI_SUCCESS       The request executed successfully.\r
+  @retval EFI_TIMEOUT       A timeout occurred executing the request.\r
+  @retval EFI_DEVICE_ERROR  The request failed due to a device error.\r
+                            The transfer status is returned in Status.\r
+  @retval EFI_NOT_FOUND     The specified USB endpoint descriptor can not be found\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 UsbClearEndpointHalt (\r
   IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINT8                   EndpointNo,\r
+  IN  UINT8                   Endpoint,\r
   OUT UINT32                  *Status\r
   )\r
 {\r
@@ -528,9 +610,8 @@ UsbClearEndpointHalt (
   EFI_USB_INTERFACE_DESCRIPTOR  InterfaceDescriptor;\r
   UINT8                         Index;\r
 \r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
+  ASSERT (UsbIo != NULL);\r
+  ASSERT (Status != NULL);\r
 \r
   ZeroMem (&EndpointDescriptor, sizeof (EFI_USB_ENDPOINT_DESCRIPTOR));\r
   //\r
@@ -554,7 +635,7 @@ UsbClearEndpointHalt (
       continue;\r
     }\r
 \r
-    if (EndpointDescriptor.EndpointAddress == EndpointNo) {\r
+    if (EndpointDescriptor.EndpointAddress == Endpoint) {\r
       break;\r
     }\r
   }\r