]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/UsbHostController.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / Protocol / UsbHostController.h
index e42306a4ddccd88c02b771b4ac103623a8ab8c0c..8b626ec52a748a71e8a4a6476d5babdefc85839a 100644 (file)
@@ -1,18 +1,12 @@
 /** @file\r
   EFI_USB_HC_PROTOCOL as defined in EFI 1.10.\r
 \r
-  The USB Host Controller Protocol is used by code, typically USB bus drivers, \r
-  running in the EFI boot services environment, to perform data transactions \r
+  The USB Host Controller Protocol is used by code, typically USB bus drivers,\r
+  running in the EFI boot services environment, to perform data transactions\r
   over a USB bus. In addition, it provides an abstraction for the root hub of the USB bus.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
     0xf5089266, 0x1aa0, 0x4953, {0x97, 0xd8, 0x56, 0x2f, 0x8a, 0x73, 0xb5, 0x19 } \\r
   }\r
 \r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
+///\r
+/// Forward reference for pure ANSI compatability\r
+///\r
 typedef struct _EFI_USB_HC_PROTOCOL EFI_USB_HC_PROTOCOL;\r
 \r
 //\r
 // Protocol definitions\r
 //\r
 \r
-/**                                                                 \r
+/**\r
   Provides software reset for the USB host controller.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  Attributes            A bit mask of the reset operation to perform.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The reset operation succeeded.\r
   @retval EFI_UNSUPPORTED       The type of reset specified by Attributes is not currently supported\r
-                                by the host controller hardware.                                    \r
+                                by the host controller hardware.\r
   @retval EFI_INVALID_PARAMETER Attributes is not valid.\r
   @retval EFI_DEVICE_ERROR      An error was encountered while attempting to perform the reset operation.\r
-                                   \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -55,18 +49,18 @@ EFI_STATUS
   IN UINT16                  Attributes\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Retrieves current state of the USB host controller.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  State                 A pointer to the EFI_USB_HC_STATE data structure that\r
-                                indicates current state of the USB host controller.  \r
-                                \r
+                                indicates current state of the USB host controller.\r
+\r
   @retval EFI_SUCCESS           The state information of the host controller was returned in State.\r
   @retval EFI_INVALID_PARAMETER State is NULL.\r
   @retval EFI_DEVICE_ERROR      An error was encountered while attempting to retrieve the host controller's\r
-                                current state.                                                                 \r
-                                \r
+                                current state.\r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -75,17 +69,17 @@ EFI_STATUS
   OUT EFI_USB_HC_STATE       *State\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Sets the USB host controller to a specific state.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  State                 Indicates the state of the host controller that will be set.                                \r
-                                \r
+  @param  State                 Indicates the state of the host controller that will be set.\r
+\r
   @retval EFI_SUCCESS           The USB host controller was successfully placed in the state specified by\r
-                                State.                                                                   \r
+                                State.\r
   @retval EFI_INVALID_PARAMETER State is NULL.\r
-  @retval EFI_DEVICE_ERROR      Failed to set the state specified by State due to device error.                                \r
-                                \r
+  @retval EFI_DEVICE_ERROR      Failed to set the state specified by State due to device error.\r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -94,35 +88,36 @@ EFI_STATUS
   IN EFI_USB_HC_STATE        State\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Submits control transfer to a target USB device.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  DeviceAddress         Represents the address of the target device on the USB, which is\r
-                                assigned during USB enumeration.                                \r
+                                assigned during USB enumeration.\r
   @param  IsSlowDevice          Indicates whether the target device is slow device or full-speed\r
-                                device.                                                         \r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the default control \r
-                                transfer endpoint is capable of sending or receiving.     \r
+                                device.\r
+  @param  MaximumPacketLength   Indicates the maximum packet size that the default control\r
+                                transfer endpoint is capable of sending or receiving.\r
   @param  Request               A pointer to the USB device request that will be sent to the USB\r
                                 device.\r
-  @param  TransferDirection     Specifies the data direction for the transfer.  \r
-  @param  Data                  A pointer to the buffer of data that will be transmitted to USB  \r
-                                device or received from USB device.                            \r
+  @param  TransferDirection     Specifies the data direction for the transfer. There are three\r
+                                values available, EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.\r
+  @param  Data                  A pointer to the buffer of data that will be transmitted to USB\r
+                                device or received from USB device.\r
   @param  DataLength            On input, indicates the size, in bytes, of the data buffer specified\r
-                                by Data. On output, indicates the amount of data actually           \r
-                                transferred.                                                        \r
+                                by Data. On output, indicates the amount of data actually\r
+                                transferred.\r
   @param  TimeOut               Indicates the maximum time, in milliseconds, which the transfer\r
-                                is allowed to complete.                                        \r
-  @param  TransferResult        A pointer to the detailed result information generated by this  \r
+                                is allowed to complete.\r
+  @param  TransferResult        A pointer to the detailed result information generated by this\r
                                 control transfer.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The control transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The control transfer could not be completed due to a lack of resources.                                \r
+  @retval EFI_OUT_OF_RESOURCES  The control transfer could not be completed due to a lack of resources.\r
   @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
   @retval EFI_TIMEOUT           The control transfer failed due to timeout.\r
   @retval EFI_DEVICE_ERROR      The control transfer failed due to host controller or device error.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -139,32 +134,36 @@ EFI_STATUS
   OUT    UINT32                    *TransferResult\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Submits bulk transfer to a bulk endpoint of a USB device.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  DeviceAddress         Represents the address of the target device on the USB, which is\r
-                                assigned during USB enumeration.                                \r
+                                assigned during USB enumeration.\r
   @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device.                  \r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the default control \r
-                                transfer endpoint is capable of sending or receiving.     \r
-  @param  Data                  A pointer to the buffer of data that will be transmitted to USB  \r
-                                device or received from USB device.                            \r
+                                direction of the target USB device. Each endpoint address\r
+                                supports data transfer in one direction except the control\r
+                                endpoint (whose default endpoint address is 0). It is the\r
+                                caller's responsibility to make sure that the EndPointAddress\r
+                                represents a bulk endpoint.\r
+  @param  MaximumPacketLength   Indicates the maximum packet size that the default control\r
+                                transfer endpoint is capable of sending or receiving.\r
+  @param  Data                  A pointer to the buffer of data that will be transmitted to USB\r
+                                device or received from USB device.\r
   @param  DataLength            On input, indicates the size, in bytes, of the data buffer specified\r
-                                by Data. On output, indicates the amount of data actually           \r
-                                transferred.             \r
-  @param  DataToggle            A pointer to the data toggle value.                                                                           \r
+                                by Data. On output, indicates the amount of data actually\r
+                                transferred.\r
+  @param  DataToggle            A pointer to the data toggle value.\r
   @param  TimeOut               Indicates the maximum time, in milliseconds, which the transfer\r
-                                is allowed to complete.                                        \r
+                                is allowed to complete.\r
   @param  TransferResult        A pointer to the detailed result information of the bulk transfer.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The bulk transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The bulk transfer could not be completed due to a lack of resources.                                \r
+  @retval EFI_OUT_OF_RESOURCES  The bulk transfer could not be completed due to a lack of resources.\r
   @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
   @retval EFI_TIMEOUT           The bulk transfer failed due to timeout.\r
   @retval EFI_DEVICE_ERROR      The bulk transfer failed due to host controller or device error.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -180,36 +179,47 @@ EFI_STATUS
   OUT    UINT32                 *TransferResult\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  DeviceAddress         Represents the address of the target device on the USB, which is\r
-                                assigned during USB enumeration.                                \r
+                                assigned during USB enumeration.\r
   @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device.   \r
+                                direction of the target USB device. Each endpoint address\r
+                                supports data transfer in one direction except the control\r
+                                endpoint (whose default endpoint address is zero). It is the\r
+                                caller's responsibility to make sure that the\r
+                                EndPointAddress represents an interrupt endpoint.\r
   @param  IsSlowDevice          Indicates whether the target device is slow device or full-speed\r
-                                device.                                                                          \r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the default control \r
-                                transfer endpoint is capable of sending or receiving.     \r
-  @param  IsNewTransfer         If TRUE, an asynchronous interrupt pipe is built between the host                       \r
-                                and the target interrupt endpoint. If FALSE, the specified       \r
-  @param  DataToggle            A pointer to the data toggle value.      \r
+                                device.\r
+  @param  MaximumPacketLength   Indicates the maximum packet size that the default control\r
+                                transfer endpoint is capable of sending or receiving.\r
+  @param  IsNewTransfer         If TRUE, an asynchronous interrupt pipe is built between the host\r
+                                and the target interrupt endpoint. If FALSE, the specified asynchronous\r
+                                interrupt pipe is canceled. If TRUE, and an interrupt transfer exists\r
+                                for the target end point, then EFI_INVALID_PARAMETER is returned.\r
+  @param  DataToggle            A pointer to the data toggle value. On input, it is valid when\r
+                                IsNewTransfer is TRUE, and it indicates the initial data toggle\r
+                                value the asynchronous interrupt transfer should adopt. On output,\r
+                                it is valid when IsNewTransfer is FALSE, and it is updated to indicate\r
+                                the data toggle value of the subsequent asynchronous interrupt transfer.\r
   @param  PollingInterval       Indicates the interval, in milliseconds, that the asynchronous\r
-                                interrupt transfer is polled.                                                                                                      asynchronous interrupt pipe is canceled.                         \r
+                                interrupt transfer is polled.\r
   @param  DataLength            Indicates the length of data to be received at the rate specified by\r
-                                PollingInterval from the target asynchronous interrupt              \r
-                                endpoint.                                                             \r
-  @param  CallBackFunction      The Callback function.                                \r
+                                PollingInterval from the target asynchronous interrupt\r
+                                endpoint. This parameter is only required when IsNewTransfer is TRUE.\r
+  @param  CallBackFunction      The Callback function. This function is called at the rate specified by\r
+                                PollingInterval. This parameter is only required when IsNewTransfer is TRUE.\r
   @param  Context               The context that is passed to the CallBackFunction.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The asynchronous interrupt transfer request has been successfully\r
-                                submitted or canceled.    \r
-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.                                \r
+                                submitted or canceled.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
   @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
   @retval EFI_TIMEOUT           The bulk transfer failed due to timeout.\r
   @retval EFI_DEVICE_ERROR      The bulk transfer failed due to host controller or device error.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -227,34 +237,41 @@ EFI_STATUS
   IN     VOID                                                *Context         OPTIONAL\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Submits synchronous interrupt transfer to an interrupt endpoint of a USB device.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  DeviceAddress         Represents the address of the target device on the USB, which is\r
-                                assigned during USB enumeration.                                \r
+                                assigned during USB enumeration.\r
   @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device.   \r
+                                direction of the target USB device. Each endpoint address\r
+                                supports data transfer in one direction except the control\r
+                                endpoint (whose default endpoint address is zero). It is the\r
+                                caller's responsibility to make sure that the\r
+                                EndPointAddress represents an interrupt endpoint.\r
   @param  IsSlowDevice          Indicates whether the target device is slow device or full-speed\r
-                                device.                                                                          \r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the default control \r
-                                transfer endpoint is capable of sending or receiving.       \r
+                                device.\r
+  @param  MaximumPacketLength   Indicates the maximum packet size that the default control\r
+                                transfer endpoint is capable of sending or receiving.\r
   @param  Data                  A pointer to the buffer of data that will be transmitted to USB\r
-                                device or received from USB device.                                                                                            asynchronous interrupt pipe is canceled.                         \r
+                                device or received from USB device.                                                                                            asynchronous interrupt pipe is canceled.\r
   @param  DataLength            On input, the size, in bytes, of the data buffer specified by Data.\r
-                                On output, the number of bytes transferred.                          \r
-  @param  DataToggle            A pointer to the data toggle value.                                \r
-  @param  TimeOut               Indicates the maximum time, in milliseconds, which the transfer    \r
-                                is allowed to complete.                                            \r
+                                On output, the number of bytes transferred.\r
+  @param  DataToggle            A pointer to the data toggle value. On input, it indicates the initial\r
+                                data toggle value the synchronous interrupt transfer should adopt;\r
+                                on output, it is updated to indicate the data toggle value of the\r
+                                subsequent synchronous interrupt transfer.\r
+  @param  TimeOut               Indicates the maximum time, in milliseconds, which the transfer\r
+                                is allowed to complete.\r
   @param  TransferResult        A pointer to the detailed result information from the synchronous\r
                                 interrupt transfer.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The synchronous interrupt transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.                                  \r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
   @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
   @retval EFI_TIMEOUT           The synchronous interrupt transfer failed due to timeout.\r
   @retval EFI_DEVICE_ERROR      The synchronous interrupt transfer failed due to host controller or device error.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -271,29 +288,33 @@ EFI_STATUS
   OUT    UINT32                 *TransferResult\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Submits isochronous transfer to an isochronous endpoint of a USB device.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  DeviceAddress         Represents the address of the target device on the USB, which is\r
-                                assigned during USB enumeration.                                \r
+                                assigned during USB enumeration.\r
   @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device.                  \r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the default control \r
-                                transfer endpoint is capable of sending or receiving.       \r
+                                direction of the target USB device. Each endpoint address\r
+                                supports data transfer in one direction except the control\r
+                                endpoint (whose default endpoint address is 0). It is the caller's\r
+                                responsibility to make sure that the EndPointAddress\r
+                                represents an isochronous endpoint.\r
+  @param  MaximumPacketLength   Indicates the maximum packet size that the default control\r
+                                transfer endpoint is capable of sending or receiving.\r
   @param  Data                  A pointer to the buffer of data that will be transmitted to USB\r
-                                device or received from USB device.                                                                                            asynchronous interrupt pipe is canceled.                         \r
+                                device or received from USB device.                                                                                            asynchronous interrupt pipe is canceled.\r
   @param  DataLength            Specifies the length, in bytes, of the data to be sent to or received\r
-                                from the USB device.                                                 \r
+                                from the USB device.\r
   @param  TransferResult        A pointer to the detailed result information from the isochronous\r
                                 transfer.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The isochronous transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The isochronous could not be completed due to a lack of resources.                                  \r
+  @retval EFI_OUT_OF_RESOURCES  The isochronous could not be completed due to a lack of resources.\r
   @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
   @retval EFI_TIMEOUT           The isochronous transfer failed due to timeout.\r
   @retval EFI_DEVICE_ERROR      The isochronous transfer failed due to host controller or device error.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -307,28 +328,36 @@ EFI_STATUS
   OUT    UINT32                 *TransferResult\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Submits nonblocking isochronous transfer to an isochronous endpoint of a USB device.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  DeviceAddress         Represents the address of the target device on the USB, which is\r
-                                assigned during USB enumeration.                                \r
+                                assigned during USB enumeration.\r
   @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device.                  \r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the default control \r
-                                transfer endpoint is capable of sending or receiving.       \r
+                                direction of the target USB device. Each endpoint address\r
+                                supports data transfer in one direction except the control\r
+                                endpoint (whose default endpoint address is zero). It is the\r
+                                caller's responsibility to make sure that the\r
+                                EndPointAddress represents an isochronous endpoint.\r
+  @param  MaximumPacketLength   Indicates the maximum packet size that the default control\r
+                                transfer endpoint is capable of sending or receiving. For isochronous\r
+                                endpoints, this value is used to reserve the bus time in the schedule,\r
+                                required for the perframe data payloads. The pipe may, on an ongoing basis,\r
+                                actually use less bandwidth than that reserved.\r
   @param  Data                  A pointer to the buffer of data that will be transmitted to USB\r
-                                device or received from USB device.                                                                                            asynchronous interrupt pipe is canceled.                         \r
+                                device or received from USB device.                                                                                            asynchronous interrupt pipe is canceled.\r
   @param  DataLength            Specifies the length, in bytes, of the data to be sent to or received\r
-                                from the USB device.                                                 \r
-  @param  IsochronousCallback   The Callback function.\r
+                                from the USB device.\r
+  @param  IsochronousCallback   The Callback function.This function is called if the requested\r
+                                isochronous transfer is completed.\r
   @param  Context               Data passed to the IsochronousCallback function. This is\r
                                 an optional parameter and may be NULL.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The asynchronous isochronous transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The asynchronous isochronous could not be completed due to a lack of resources.                                  \r
+  @retval EFI_OUT_OF_RESOURCES  The asynchronous isochronous could not be completed due to a lack of resources.\r
   @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -343,16 +372,16 @@ EFI_STATUS
   IN     VOID                               *Context OPTIONAL\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Retrieves the number of root hub ports.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  PortNumber            A pointer to the number of the root hub ports.                                \r
-                                \r
+  @param  PortNumber            A pointer to the number of the root hub ports.\r
+\r
   @retval EFI_SUCCESS           The port number was retrieved successfully.\r
   @retval EFI_DEVICE_ERROR      An error was encountered while attempting to retrieve the port number.\r
   @retval EFI_INVALID_PARAMETER PortNumber is NULL.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -361,18 +390,20 @@ EFI_STATUS
   OUT UINT8                 *PortNumber\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Retrieves the current status of a USB root hub port.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  PortNumber            Specifies the root hub port from which the status is to be retrieved.\r
-                                This value is zero based.\r
-  @param  PortStatus            A pointer to the current port status bits and port status change bits.                                \r
-                                \r
+                                This value is zero based. For example, if a root hub has two ports,\r
+                                then the first port is numbered 0, and the second port is\r
+                                numbered 1.\r
+  @param  PortStatus            A pointer to the current port status bits and port status change bits.\r
+\r
   @retval EFI_SUCCESS           The status of the USB root hub port specified by PortNumber\r
-                                was returned in PortStatus.                                \r
+                                was returned in PortStatus.\r
   @retval EFI_INVALID_PARAMETER PortNumber is invalid.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -382,19 +413,21 @@ EFI_STATUS
   OUT EFI_USB_PORT_STATUS    *PortStatus\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Sets a feature for the specified root hub port.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
   @param  PortNumber            Specifies the root hub port from which the status is to be retrieved.\r
-                                This value is zero based.\r
+                                This value is zero based. For example, if a root hub has two ports,\r
+                                then the first port is numbered 0, and the second port is\r
+                                numbered 1.\r
   @param  PortFeature           Indicates the feature selector associated with the feature set\r
                                 request.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The feature specified by PortFeature was set for the USB\r
-                                root hub port specified by PortNumber.                  \r
+                                root hub port specified by PortNumber.\r
   @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid for this function.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -404,19 +437,21 @@ EFI_STATUS
   IN EFI_USB_PORT_FEATURE    PortFeature\r
   );\r
 \r
-/**                                                                 \r
+/**\r
   Clears a feature for the specified root hub port.\r
-    \r
+\r
   @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  PortNumber            Specifies the root hub port from which the status is to be cleared.\r
-                                This value is zero based.\r
+  @param  PortNumber            Specifies the root hub port from which the status is to be retrieved.\r
+                                This value is zero based. For example, if a root hub has two ports,\r
+                                then the first port is numbered 0, and the second port is\r
+                                numbered 1.\r
   @param  PortFeature           Indicates the feature selector associated with the feature clear\r
                                 request.\r
-                                \r
+\r
   @retval EFI_SUCCESS           The feature specified by PortFeature was cleared for the USB\r
-                                root hub port specified by PortNumber.                  \r
+                                root hub port specified by PortNumber.\r
   @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid for this function.\r
-                                \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -426,86 +461,41 @@ EFI_STATUS
   IN EFI_USB_PORT_FEATURE    PortFeature\r
   );\r
 \r
-\r
-/**  \r
-  @par Protocol Description:\r
-  The EFI_USB_HC_PROTOCOL provides USB host controller management, basic data transactions\r
-  over a USB bus, and USB root hub access. A device driver that wishes to manage a USB bus in a\r
-  system retrieves the EFI_USB_HC_PROTOCOL instance that is associated with the USB bus to be\r
-  managed. A device handle for a USB host controller will minimally contain an\r
-  EFI_DEVICE_PATH_PROTOCOL instance, and an EFI_USB_HC_PROTOCOL instance. \r
-  \r
-  @param Reset \r
-  Software reset of USB. \r
-\r
-  @param GetState \r
-  Retrieves the current state of the USB host controller. \r
-\r
-  @param SetState \r
-  Sets the USB host controller to a specific state. \r
-\r
-  @param ControlTransfer \r
-  Submits a control transfer to a target USB device. \r
-\r
-  @param BulkTransfer \r
-  Submits a bulk transfer to a bulk endpoint of a USB device. \r
-\r
-  @param AsyncInterruptTransfer\r
-  Submits an asynchronous interrupt transfer to an interrupt endpoint\r
-  of a USB device. \r
-\r
-  @param SyncInterruptTransfer\r
-  Submits a synchronous interrupt transfer to an interrupt endpoint\r
-  of a USB device.\r
-\r
-  @param IsochronousTransfer \r
-  Submits isochronous transfer to an isochronous endpoint of a USB device.\r
-\r
-  @param AsyncIsochronousTransfer\r
-  Submits nonblocking USB isochronous transfer.\r
-\r
-  @param GetRootHubPortNumber \r
-  Retrieves the number of root hub ports that are produced by the\r
-  USB host controller. \r
-\r
-  @param GetRootHubPortStatus \r
-  Retrieves the status of the specified root hub port. \r
-\r
-  @param SetRootHubPortFeature\r
-  Sets the feature for the specified root hub port.\r
-\r
-  @param ClearRootHubPortFeature\r
-  Clears the feature for the specified root hub port. \r
-\r
-  @param MajorRevision \r
-  The major revision number of the USB host controller. The\r
-  revision information indicates the release of the Universal Serial\r
-  Bus Specification with which the host controller is compliant.\r
-\r
-  @param MinorRevision \r
-  The minor revision number of the USB host controller. The\r
-  revision information indicates the release of the Universal Serial\r
-  Bus Specification with which the host controller is compliant.\r
\r
-**/\r
+///\r
+/// The EFI_USB_HC_PROTOCOL provides USB host controller management, basic data transactions\r
+/// over a USB bus, and USB root hub access. A device driver that wishes to manage a USB bus in a\r
+/// system retrieves the EFI_USB_HC_PROTOCOL instance that is associated with the USB bus to be\r
+/// managed. A device handle for a USB host controller will minimally contain an\r
+/// EFI_DEVICE_PATH_PROTOCOL instance, and an EFI_USB_HC_PROTOCOL instance.\r
+///\r
 struct _EFI_USB_HC_PROTOCOL {\r
-  EFI_USB_HC_PROTOCOL_RESET                       Reset;\r
-  EFI_USB_HC_PROTOCOL_GET_STATE                   GetState;\r
-  EFI_USB_HC_PROTOCOL_SET_STATE                   SetState;\r
-  EFI_USB_HC_PROTOCOL_CONTROL_TRANSFER            ControlTransfer;\r
-  EFI_USB_HC_PROTOCOL_BULK_TRANSFER               BulkTransfer;\r
-  EFI_USB_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER    AsyncInterruptTransfer;\r
-  EFI_USB_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER     SyncInterruptTransfer;\r
-  EFI_USB_HC_PROTOCOL_ISOCHRONOUS_TRANSFER        IsochronousTransfer;\r
-  EFI_USB_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER  AsyncIsochronousTransfer;\r
-  EFI_USB_HC_PROTOCOL_GET_ROOTHUB_PORT_NUMBER     GetRootHubPortNumber;\r
-  EFI_USB_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS     GetRootHubPortStatus;\r
-  EFI_USB_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE    SetRootHubPortFeature;\r
-  EFI_USB_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE  ClearRootHubPortFeature;\r
-  UINT16                                          MajorRevision;\r
-  UINT16                                          MinorRevision;\r
+  EFI_USB_HC_PROTOCOL_RESET                         Reset;\r
+  EFI_USB_HC_PROTOCOL_GET_STATE                     GetState;\r
+  EFI_USB_HC_PROTOCOL_SET_STATE                     SetState;\r
+  EFI_USB_HC_PROTOCOL_CONTROL_TRANSFER              ControlTransfer;\r
+  EFI_USB_HC_PROTOCOL_BULK_TRANSFER                 BulkTransfer;\r
+  EFI_USB_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER      AsyncInterruptTransfer;\r
+  EFI_USB_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER       SyncInterruptTransfer;\r
+  EFI_USB_HC_PROTOCOL_ISOCHRONOUS_TRANSFER          IsochronousTransfer;\r
+  EFI_USB_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER    AsyncIsochronousTransfer;\r
+  EFI_USB_HC_PROTOCOL_GET_ROOTHUB_PORT_NUMBER       GetRootHubPortNumber;\r
+  EFI_USB_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS       GetRootHubPortStatus;\r
+  EFI_USB_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE      SetRootHubPortFeature;\r
+  EFI_USB_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE    ClearRootHubPortFeature;\r
+  ///\r
+  /// The major revision number of the USB host controller. The revision information\r
+  /// indicates the release of the Universal Serial Bus Specification with which the\r
+  /// host controller is compliant.\r
+  ///\r
+  UINT16                                            MajorRevision;\r
+  ///\r
+  /// The minor revision number of the USB host controller. The revision information\r
+  /// indicates the release of the Universal Serial Bus Specification with which the\r
+  /// host controller is compliant.\r
+  ///\r
+  UINT16                                            MinorRevision;\r
 };\r
 \r
-extern EFI_GUID gEfiUsbHcProtocolGuid;\r
+extern EFI_GUID  gEfiUsbHcProtocolGuid;\r
 \r
 #endif\r