X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FUefiUsbLib%2FUsbDxeLib.c;h=b1fcbc50970fc5e9bd27cd5cefc624f8395a64ff;hb=c3c9892c3b4dafd1d0ccdc8e5e017d80e8c4361e;hp=90b0fd3ea5cc29233723f5ee269a5c5a1fd897ec;hpb=d35be2a434d347c0ff112f89c120a5c8a79c89a7;p=mirror_edk2.git
diff --git a/MdePkg/Library/UefiUsbLib/UsbDxeLib.c b/MdePkg/Library/UefiUsbLib/UsbDxeLib.c
index 90b0fd3ea5..b1fcbc5097 100644
--- a/MdePkg/Library/UefiUsbLib/UsbDxeLib.c
+++ b/MdePkg/Library/UefiUsbLib/UsbDxeLib.c
@@ -1,34 +1,47 @@
/** @file
-Copyright (c) 2004 - 2007, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Common Dxe Libarary for USB
+ The library provides the USB Standard Device Requests defined
+ in Usb specification 9.4 section.
+
+ Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+ This program and the accompanying materials are
+ licensed and made available under the terms and conditions of
+ the BSD License which accompanies this distribution. The full
+ text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php.
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
-#include
+#include "UefiUsbLibInternal.h"
/**
- Usb Get Descriptor
-
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Value Device Request Value
- @param Index Device Request Index
- @param DescriptorLength Descriptor Length
- @param Descriptor Descriptor buffer to contain result
- @param Status Transfer Status
-
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ Get the descriptor of the specified USB device.
+
+ Submit a USB get descriptor request for the USB device specified by UsbIo, Value,
+ and Index, and return the descriptor in the buffer specified by Descriptor.
+ The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Descriptor is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
+
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Value The device request value.
+ @param Index The device request index.
+ @param DescriptorLength The size, in bytes, of Descriptor.
+ @param Descriptor A pointer to the descriptor buffer to get.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed because the
+ buffer specified by DescriptorLength and Descriptor
+ is not large enough to hold the result of the request.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error. The transfer
+ status is returned in Status.
**/
EFI_STATUS
@@ -44,9 +57,9 @@ UsbGetDescriptor (
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (Descriptor != NULL);
+ ASSERT (Status != NULL);
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
@@ -60,7 +73,7 @@ UsbGetDescriptor (
UsbIo,
&DevReq,
EfiUsbDataIn,
- TIMEOUT_VALUE,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
Descriptor,
DescriptorLength,
Status
@@ -69,18 +82,26 @@ UsbGetDescriptor (
/**
- Usb Set Descriptor
-
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Value Device Request Value
- @param Index Device Request Index
- @param DescriptorLength Descriptor Length
- @param Descriptor Descriptor buffer to set
- @param Status Transfer Status
-
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ Set the descriptor of the specified USB device.
+
+ Submit a USB set descriptor request for the USB device specified by UsbIo,
+ Value, and Index, and set the descriptor using the buffer specified by DesriptorLength
+ and Descriptor. The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Descriptor is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
+
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Value The device request value.
+ @param Index The device request index.
+ @param DescriptorLength The size, in bytes, of Descriptor.
+ @param Descriptor A pointer to the descriptor buffer to set.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
@@ -96,9 +117,9 @@ UsbSetDescriptor (
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (Descriptor != NULL);
+ ASSERT (Status != NULL);
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
@@ -112,7 +133,7 @@ UsbSetDescriptor (
UsbIo,
&DevReq,
EfiUsbDataOut,
- TIMEOUT_VALUE,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
Descriptor,
DescriptorLength,
Status
@@ -121,46 +142,56 @@ UsbSetDescriptor (
/**
- Usb Get Device Interface
+ Get the interface setting of the specified USB device.
+
+ Submit a USB get interface request for the USB device specified by UsbIo,
+ and Interface, and place the result in the buffer specified by AlternateSetting.
+ The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If AlternateSetting is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Index Interface index value
- @param AltSetting Alternate setting
- @param Status Trasnsfer status
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Interface The interface index value.
+ @param AlternateSetting A pointer to the alternate setting to be retrieved.
+ @param Status A pointer to the status of the transfer.
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbGetInterface (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINT16 Index,
- OUT UINT8 *AltSetting,
+ IN UINT16 Interface,
+ OUT UINT16 *AlternateSetting,
OUT UINT32 *Status
)
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (AlternateSetting != NULL);
+ ASSERT (Status != NULL);
+
+ *AlternateSetting = 0;
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
DevReq.RequestType = USB_DEV_GET_INTERFACE_REQ_TYPE;
DevReq.Request = USB_REQ_GET_INTERFACE;
- DevReq.Index = Index;
+ DevReq.Index = Interface;
DevReq.Length = 1;
return UsbIo->UsbControlTransfer (
UsbIo,
&DevReq,
EfiUsbDataIn,
- TIMEOUT_VALUE,
- AltSetting,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
+ AlternateSetting,
1,
Status
);
@@ -168,46 +199,51 @@ UsbGetInterface (
/**
- Usb Set Device Interface
+ Set the interface setting of the specified USB device.
+
+ Submit a USB set interface request for the USB device specified by UsbIo, and
+ Interface, and set the alternate setting to the value specified by AlternateSetting.
+ The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param InterfaceNo Interface Number
- @param AltSetting Alternate setting
- @param Status Trasnsfer status
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Interface The interface index value.
+ @param AlternateSetting The alternate setting to be set.
+ @param Status A pointer to the status of the transfer.
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_SUCCESS The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbSetInterface (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINT16 InterfaceNo,
- IN UINT16 AltSetting,
+ IN UINT16 Interface,
+ IN UINT16 AlternateSetting,
OUT UINT32 *Status
)
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (Status != NULL);
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
DevReq.RequestType = USB_DEV_SET_INTERFACE_REQ_TYPE;
DevReq.Request = USB_REQ_SET_INTERFACE;
- DevReq.Value = AltSetting;
- DevReq.Index = InterfaceNo;
-
+ DevReq.Value = AlternateSetting;
+ DevReq.Index = Interface;
return UsbIo->UsbControlTransfer (
UsbIo,
&DevReq,
EfiUsbNoData,
- TIMEOUT_VALUE,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
NULL,
0,
Status
@@ -216,30 +252,40 @@ UsbSetInterface (
/**
- Usb Get Device Configuration
+ Get the device configuration.
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param ConfigValue Config Value
- @param Status Transfer Status
+ Submit a USB get configuration request for the USB device specified by UsbIo
+ and place the result in the buffer specified by ConfigurationValue. The status
+ of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If ConfigurationValue is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param ConfigurationValue A pointer to the device configuration to be retrieved.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbGetConfiguration (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- OUT UINT8 *ConfigValue,
+ OUT UINT16 *ConfigurationValue,
OUT UINT32 *Status
)
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (ConfigurationValue != NULL);
+ ASSERT (Status != NULL);
+
+ *ConfigurationValue = 0;
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
@@ -251,8 +297,8 @@ UsbGetConfiguration (
UsbIo,
&DevReq,
EfiUsbDataIn,
- TIMEOUT_VALUE,
- ConfigValue,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
+ ConfigurationValue,
1,
Status
);
@@ -260,42 +306,48 @@ UsbGetConfiguration (
/**
- Usb Set Device Configuration
+ Set the device configuration.
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Value Configuration Value to set
- @param Status Transfer status
+ Submit a USB set configuration request for the USB device specified by UsbIo
+ and set the device configuration to the value specified by ConfigurationValue.
+ The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param ConfigurationValue The device configuration value to be set.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbSetConfiguration (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINT16 Value,
+ IN UINT16 ConfigurationValue,
OUT UINT32 *Status
)
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (Status != NULL);
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
DevReq.RequestType = USB_DEV_SET_CONFIGURATION_REQ_TYPE;
DevReq.Request = USB_REQ_SET_CONFIG;
- DevReq.Value = Value;
+ DevReq.Value = ConfigurationValue;
return UsbIo->UsbControlTransfer (
UsbIo,
&DevReq,
EfiUsbNoData,
- TIMEOUT_VALUE,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
NULL,
0,
Status
@@ -304,24 +356,33 @@ UsbSetConfiguration (
/**
- Usb Set Device Feature
-
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Recipient Interface/Device/Endpoint
- @param Value Request value
- @param Target Request Index
- @param Status Transfer status
-
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ Set the specified feature of the specified device.
+
+ Submit a USB set device feature request for the USB device specified by UsbIo,
+ Recipient, and Target to the value specified by Value. The status of the
+ transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
+
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint).
+ Type USB_TYPES_DEFINITION is defined in the MDE Package Industry
+ Standard include file Usb.h.
+ @param Value The value of the feature to be set.
+ @param Target The index of the device to be set.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbSetFeature (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINTN Recipient,
+ IN USB_TYPES_DEFINITION Recipient,
IN UINT16 Value,
IN UINT16 Target,
OUT UINT32 *Status
@@ -329,9 +390,8 @@ UsbSetFeature (
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (Status != NULL);
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
@@ -348,6 +408,9 @@ UsbSetFeature (
case USB_TARGET_ENDPOINT:
DevReq.RequestType = USB_DEV_SET_FEATURE_REQ_TYPE_E;
break;
+
+ default:
+ break;
}
//
// Fill device request, see USB1.1 spec
@@ -361,7 +424,7 @@ UsbSetFeature (
UsbIo,
&DevReq,
EfiUsbNoData,
- TIMEOUT_VALUE,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
NULL,
0,
Status
@@ -370,24 +433,33 @@ UsbSetFeature (
/**
- Usb Clear Device Feature
-
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Recipient Interface/Device/Endpoint
- @param Value Request value
- @param Target Request Index
- @param Status Transfer status
-
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ Clear the specified feature of the specified device.
+
+ Submit a USB clear device feature request for the USB device specified by UsbIo,
+ Recipient, and Target to the value specified by Value. The status of the transfer
+ is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
+
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint).
+ Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard
+ include file Usb.h.
+ @param Value The value of the feature to be cleared.
+ @param Target The index of the device to be cleared.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbClearFeature (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINTN Recipient,
+ IN USB_TYPES_DEFINITION Recipient,
IN UINT16 Value,
IN UINT16 Target,
OUT UINT32 *Status
@@ -395,9 +467,9 @@ UsbClearFeature (
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (Status != NULL);
+
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
@@ -414,6 +486,9 @@ UsbClearFeature (
case USB_TARGET_ENDPOINT:
DevReq.RequestType = USB_DEV_CLEAR_FEATURE_REQ_TYPE_E;
break;
+
+ default:
+ break;
}
//
// Fill device request, see USB1.1 spec
@@ -427,7 +502,7 @@ UsbClearFeature (
UsbIo,
&DevReq,
EfiUsbNoData,
- TIMEOUT_VALUE,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
NULL,
0,
Status
@@ -436,34 +511,44 @@ UsbClearFeature (
/**
- Usb Get Device Status
-
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param Recipient Interface/Device/Endpoint
- @param Target Request index
- @param DevStatus Device status
- @param Status Transfer status
-
- @retval EFI_INVALID_PARAMETER Parameter is error
- @retval EFI_SUCCESS Success
- @retval EFI_TIMEOUT Device has no response
+ Get the status of the specified device.
+
+ Submit a USB device get status request for the USB device specified by UsbIo,
+ Recipient, and Target and place the result in the buffer specified by DeviceStatus.
+ The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If DeviceStatus is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
+
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint).
+ Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard
+ include file Usb.h.
+ @param Target The index of the device to be get the status of.
+ @param DeviceStatus A pointer to the device status to be retrieved.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
**/
EFI_STATUS
EFIAPI
UsbGetStatus (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINTN Recipient,
+ IN USB_TYPES_DEFINITION Recipient,
IN UINT16 Target,
- OUT UINT16 *DevStatus,
+ OUT UINT16 *DeviceStatus,
OUT UINT32 *Status
)
{
EFI_USB_DEVICE_REQUEST DevReq;
- if (UsbIo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ ASSERT (UsbIo != NULL);
+ ASSERT (DeviceStatus != NULL);
+ ASSERT (Status != NULL);
ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));
@@ -480,6 +565,9 @@ UsbGetStatus (
case USB_TARGET_ENDPOINT:
DevReq.RequestType = USB_DEV_GET_STATUS_REQ_TYPE_E;
break;
+
+ default:
+ break;
}
//
// Fill device request, see USB1.1 spec
@@ -493,32 +581,40 @@ UsbGetStatus (
UsbIo,
&DevReq,
EfiUsbDataIn,
- TIMEOUT_VALUE,
- DevStatus,
+ PcdGet32 (PcdUsbTransferTimeoutValue),
+ DeviceStatus,
2,
Status
);
}
-
/**
- Clear endpoint stall
+ Clear halt feature of the specified usb endpoint.
- @param UsbIo EFI_USB_IO_PROTOCOL
- @param EndpointNo Endpoint Number
- @param Status Transfer Status
+ Retrieve the USB endpoint descriptor specified by UsbIo and EndPoint.
+ If the USB endpoint descriptor can not be retrieved, then return EFI_NOT_FOUND.
+ If the endpoint descriptor is found, then clear the halt feature of this USB endpoint.
+ The status of the transfer is returned in Status.
+ If UsbIo is NULL, then ASSERT().
+ If Status is NULL, then ASSERT().
- @retval EFI_NOT_FOUND Can't find the Endpoint
- @retval EFI_DEVICE_ERROR Hardware error
- @retval EFI_SUCCESS Success
+ @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
+ @param Endpoint The endpoint address.
+ @param Status A pointer to the status of the transfer.
+
+ @retval EFI_SUCCESS The request executed successfully.
+ @retval EFI_TIMEOUT A timeout occurred executing the request.
+ @retval EFI_DEVICE_ERROR The request failed due to a device error.
+ The transfer status is returned in Status.
+ @retval EFI_NOT_FOUND The specified USB endpoint descriptor can not be found
**/
EFI_STATUS
EFIAPI
UsbClearEndpointHalt (
IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN UINT8 EndpointNo,
+ IN UINT8 Endpoint,
OUT UINT32 *Status
)
{
@@ -527,9 +623,12 @@ UsbClearEndpointHalt (
EFI_USB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
UINT8 Index;
+ ASSERT (UsbIo != NULL);
+ ASSERT (Status != NULL);
+
ZeroMem (&EndpointDescriptor, sizeof (EFI_USB_ENDPOINT_DESCRIPTOR));
//
- // First seach the endpoint descriptor for that endpoint addr
+ // First search the endpoint descriptor for that endpoint addr
//
Result = UsbIo->UsbGetInterfaceDescriptor (
UsbIo,
@@ -549,7 +648,7 @@ UsbClearEndpointHalt (
continue;
}
- if (EndpointDescriptor.EndpointAddress == EndpointNo) {
+ if (EndpointDescriptor.EndpointAddress == Endpoint) {
break;
}
}