+++ /dev/null
-/** @file\r
-Provides the definition of Usb Hc Protocol and OHCI controller\r
-private data structure.\r
-\r
-Copyright (c) 2013-2016 Intel Corporation.\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-\r
-\r
-#ifndef _OHCI_H\r
-#define _OHCI_H\r
-\r
-\r
-#include <Uefi.h>\r
-\r
-#include <Protocol/UsbHostController.h>\r
-#include <Protocol/PciIo.h>\r
-\r
-#include <Guid/EventGroup.h>\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-\r
-#include <IndustryStandard/Pci.h>\r
-\r
-\r
-typedef struct _USB_OHCI_HC_DEV USB_OHCI_HC_DEV;\r
-\r
-#include "UsbHcMem.h"\r
-#include "OhciReg.h"\r
-#include "OhciSched.h"\r
-#include "OhciUrb.h"\r
-#include "Descriptor.h"\r
-#include "ComponentName.h"\r
-#include "OhciDebug.h"\r
-\r
-extern EFI_DRIVER_BINDING_PROTOCOL gOhciDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gOhciComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gOhciComponentName2;\r
-\r
-#define USB_OHCI_HC_DEV_SIGNATURE SIGNATURE_32('o','h','c','i')\r
-\r
-typedef struct _HCCA_MEMORY_BLOCK{\r
- UINT32 HccaInterruptTable[32]; // 32-bit Physical Address to ED_DESCRIPTOR\r
- UINT16 HccaFrameNumber;\r
- UINT16 HccaPad;\r
- UINT32 HccaDoneHead; // 32-bit Physical Address to TD_DESCRIPTOR\r
- UINT8 Reserved[116];\r
-} HCCA_MEMORY_BLOCK;\r
-\r
-\r
-struct _USB_OHCI_HC_DEV {\r
- UINTN Signature;\r
- EFI_USB_HC_PROTOCOL UsbHc;\r
- EFI_USB2_HC_PROTOCOL Usb2Hc;\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- UINT64 OriginalPciAttributes;\r
-\r
- HCCA_MEMORY_BLOCK *HccaMemoryBlock;\r
- VOID *HccaMemoryBuf;\r
- VOID *HccaMemoryMapping;\r
- UINTN HccaMemoryPages;\r
-\r
- ED_DESCRIPTOR *IntervalList[6][32];\r
- INTERRUPT_CONTEXT_ENTRY *InterruptContextList;\r
- VOID *MemPool;\r
-\r
- UINT32 ToggleFlag;\r
-\r
- EFI_EVENT HouseKeeperTimer;\r
- //\r
- // ExitBootServicesEvent is used to stop the OHC DMA operation\r
- // after exit boot service.\r
- //\r
- EFI_EVENT ExitBootServiceEvent;\r
-\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
-};\r
-\r
-#define USB_OHCI_HC_DEV_FROM_THIS(a) CR(a, USB_OHCI_HC_DEV, UsbHc, USB_OHCI_HC_DEV_SIGNATURE)\r
-#define USB2_OHCI_HC_DEV_FROM_THIS(a) CR(a, USB_OHCI_HC_DEV, Usb2Hc, USB_OHCI_HC_DEV_SIGNATURE)\r
-\r
-//\r
-// Func List\r
-//\r
-\r
-/**\r
- Provides software reset for the USB host controller.\r
-\r
- @param This This EFI_USB_HC_PROTOCOL instance.\r
- @param Attributes A bit mask of the reset operation to perform.\r
-\r
- @retval EFI_SUCCESS The reset operation succeeded.\r
- @retval EFI_INVALID_PARAMETER Attributes is not valid.\r
- @retval EFI_UNSUPPOURTED The type of reset specified by Attributes is\r
- not currently supported by the host controller.\r
- @retval EFI_DEVICE_ERROR Host controller isn't halted to reset.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciReset (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT16 Attributes\r
- );\r
-/**\r
- Retrieve the current state of the USB host controller.\r
-\r
- @param This This EFI_USB_HC_PROTOCOL instance.\r
- @param State Variable to return the current host controller\r
- state.\r
-\r
- @retval EFI_SUCCESS Host controller state was returned in State.\r
- @retval EFI_INVALID_PARAMETER State is NULL.\r
- @retval EFI_DEVICE_ERROR An error was encountered while attempting to\r
- retrieve the host controller's current state.\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciGetState (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- OUT EFI_USB_HC_STATE *State\r
- );\r
-/**\r
- Sets the USB host controller to a specific state.\r
-\r
- @param This This EFI_USB_HC_PROTOCOL instance.\r
- @param State The state of the host controller that will be set.\r
-\r
- @retval EFI_SUCCESS The USB host controller was successfully placed\r
- in the state specified by State.\r
- @retval EFI_INVALID_PARAMETER State is invalid.\r
- @retval EFI_DEVICE_ERROR Failed to set the state due to device error.\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciSetState(\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN EFI_USB_HC_STATE State\r
- );\r
-/**\r
-\r
- Submits control transfer to a target USB device.\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,\r
- which is assigned during USB enumeration.\r
- @param IsSlowDevice Indicates whether the target device is slow device\r
- or full-speed device.\r
- @param MaxPaketLength Indicates the maximum packet size that the\r
- default control transfer endpoint is capable of\r
- sending or receiving.\r
- @param Request A pointer to the USB device request that will be sent\r
- to the USB device.\r
- @param TransferDirection Specifies the data direction for the transfer.\r
- There are three values available, DataIn, DataOut\r
- and NoData.\r
- @param Data A pointer to the buffer of data that will be transmitted\r
- to USB device or received from USB device.\r
- @param DataLength Indicates the size, in bytes, of the data buffer\r
- specified by Data.\r
- @param TimeOut Indicates the maximum time, in microseconds,\r
- which the transfer is allowed to complete.\r
- @param TransferResult A pointer to the detailed result information generated\r
- by this control transfer.\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_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
- Caller should check TranferResult for detailed error information.\r
-\r
---*/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciControlTransfer (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 DeviceAddress,\r
- IN BOOLEAN IsSlowDevice,\r
- IN UINT8 MaxPacketLength,\r
- IN EFI_USB_DEVICE_REQUEST *Request,\r
- IN EFI_USB_DATA_DIRECTION TransferDirection,\r
- IN OUT VOID *Data OPTIONAL,\r
- IN OUT UINTN *DataLength OPTIONAL,\r
- IN UINTN TimeOut,\r
- OUT UINT32 *TransferResult\r
- );\r
-/**\r
-\r
- Submits bulk transfer to a bulk endpoint of a USB device.\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,\r
- which is assigned during USB enumeration.\r
- @param EndPointAddress The combination of an endpoint number and an\r
- endpoint direction of the target USB device.\r
- Each endpoint address supports data transfer in\r
- one direction except the control endpoint\r
- (whose default endpoint address is 0).\r
- It is the caller's responsibility to make sure that\r
- the EndPointAddress represents a bulk endpoint.\r
- @param MaximumPacketLength Indicates the maximum packet size the target endpoint\r
- is capable of sending or receiving.\r
- @param Data A pointer to the buffer of data that will be transmitted\r
- to USB device or received from USB device.\r
- @param DataLength When input, indicates the size, in bytes, of the data buffer\r
- specified by Data. When output, indicates the actually\r
- transferred data size.\r
- @param DataToggle A pointer to the data toggle value. On input, it indicates\r
- the initial data toggle value the bulk transfer should adopt;\r
- on output, it is updated to indicate the data toggle value\r
- of the subsequent bulk transfer.\r
- @param TimeOut Indicates the maximum time, in microseconds, which the\r
- transfer is allowed to complete.\r
- TransferResult A pointer to the detailed result information of the\r
- bulk transfer.\r
-\r
- @retval EFI_SUCCESS The bulk transfer was completed successfully.\r
- @retval EFI_OUT_OF_RESOURCES The bulk transfer could not be submitted due to lack of resource.\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
- Caller should check TranferResult for detailed error information.\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciBulkTransfer(\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 DeviceAddress,\r
- IN UINT8 EndPointAddress,\r
- IN UINT8 MaxPacketLength,\r
- IN OUT VOID *Data,\r
- IN OUT UINTN *DataLength,\r
- IN OUT UINT8 *DataToggle,\r
- IN UINTN TimeOut,\r
- OUT UINT32 *TransferResult\r
- );\r
-/**\r
-\r
- Submits an interrupt transfer to an interrupt endpoint of a USB device.\r
-\r
- @param Ohc Device private data\r
- @param DeviceAddress Represents the address of the target device on the USB,\r
- which is assigned during USB enumeration.\r
- @param EndPointAddress The combination of an endpoint number and an endpoint\r
- direction of the target USB device. Each endpoint address\r
- supports data transfer in one direction except the\r
- control endpoint (whose default endpoint address is 0).\r
- It is the caller's responsibility to make sure that\r
- the EndPointAddress represents an interrupt endpoint.\r
- @param IsSlowDevice Indicates whether the target device is slow device\r
- or full-speed device.\r
- @param MaxPacketLength Indicates the maximum packet size the target endpoint\r
- is capable of sending or receiving.\r
- @param IsNewTransfer If TRUE, an asynchronous interrupt pipe is built between\r
- the host and the target interrupt endpoint.\r
- If FALSE, the specified asynchronous interrupt pipe\r
- is canceled.\r
- @param DataToggle A pointer to the data toggle value. On input, it is valid\r
- when IsNewTransfer is TRUE, and it indicates the initial\r
- data toggle value the asynchronous interrupt transfer\r
- should adopt.\r
- On output, it is valid when IsNewTransfer is FALSE,\r
- and it is updated to indicate the data toggle value of\r
- the subsequent asynchronous interrupt transfer.\r
- @param PollingInterval Indicates the interval, in milliseconds, that the\r
- asynchronous interrupt transfer is polled.\r
- This parameter is required when IsNewTransfer is TRUE.\r
- @param UCBuffer Uncacheable buffer\r
- @param DataLength Indicates the length of data to be received at the\r
- rate specified by PollingInterval from the target\r
- asynchronous interrupt endpoint. This parameter\r
- is only required when IsNewTransfer is TRUE.\r
- @param CallBackFunction The Callback function.This function is called at the\r
- rate specified by PollingInterval.This parameter is\r
- only required when IsNewTransfer is TRUE.\r
- @param Context The context that is passed to the CallBackFunction.\r
- This is an optional parameter and may be NULL.\r
- @param IsPeriodic Periodic interrupt or not\r
- @param OutputED The correspoding ED carried out\r
- @param OutputTD The correspoding TD carried out\r
-\r
-\r
- @retval EFI_SUCCESS The asynchronous interrupt transfer request has been successfully\r
- submitted or canceled.\r
- @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
- @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-OhciInterruptTransfer (\r
- IN USB_OHCI_HC_DEV *Ohc,\r
- IN UINT8 DeviceAddress,\r
- IN UINT8 EndPointAddress,\r
- IN BOOLEAN IsSlowDevice,\r
- IN UINT8 MaxPacketLength,\r
- IN BOOLEAN IsNewTransfer,\r
- IN OUT UINT8 *DataToggle OPTIONAL,\r
- IN UINTN PollingInterval OPTIONAL,\r
- IN VOID *UCBuffer OPTIONAL,\r
- IN UINTN DataLength OPTIONAL,\r
- IN EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunction OPTIONAL,\r
- IN VOID *Context OPTIONAL,\r
- IN BOOLEAN IsPeriodic OPTIONAL,\r
- OUT ED_DESCRIPTOR **OutputED OPTIONAL,\r
- OUT TD_DESCRIPTOR **OutputTD OPTIONAL\r
- );\r
-/**\r
-\r
- Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.\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,\r
- which is assigned during USB enumeration.\r
- @param EndPointAddress The combination of an endpoint number and an endpoint\r
- direction of the target USB device. Each endpoint address\r
- supports data transfer in one direction except the\r
- control endpoint (whose default endpoint address is 0).\r
- It is the caller's responsibility to make sure that\r
- the EndPointAddress represents an interrupt endpoint.\r
- @param IsSlowDevice Indicates whether the target device is slow device\r
- or full-speed device.\r
- @param MaxiumPacketLength Indicates the maximum packet size the target endpoint\r
- is capable of sending or receiving.\r
- @param IsNewTransfer If TRUE, an asynchronous interrupt pipe is built between\r
- the host and the target interrupt endpoint.\r
- If FALSE, the specified asynchronous interrupt pipe\r
- is canceled.\r
- @param DataToggle A pointer to the data toggle value. On input, it is valid\r
- when IsNewTransfer is TRUE, and it indicates the initial\r
- data toggle value the asynchronous interrupt transfer\r
- should adopt.\r
- On output, it is valid when IsNewTransfer is FALSE,\r
- and it is updated to indicate the data toggle value of\r
- the subsequent asynchronous interrupt transfer.\r
- @param PollingInterval Indicates the interval, in milliseconds, that the\r
- asynchronous interrupt transfer is polled.\r
- This parameter is required when IsNewTransfer is TRUE.\r
- @param DataLength Indicates the length of data to be received at the\r
- rate specified by PollingInterval from the target\r
- asynchronous interrupt endpoint. This parameter\r
- is only required when IsNewTransfer is TRUE.\r
- @param CallBackFunction The Callback function.This function is called at the\r
- rate specified by PollingInterval.This parameter is\r
- only required when IsNewTransfer is TRUE.\r
- @param Context The context that is passed to the CallBackFunction.\r
- This is an optional parameter and may be NULL.\r
-\r
- @retval EFI_SUCCESS The asynchronous interrupt transfer request has been successfully\r
- submitted or canceled.\r
- @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
- @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciAsyncInterruptTransfer (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 DeviceAddress,\r
- IN UINT8 EndPointAddress,\r
- IN BOOLEAN IsSlowDevice,\r
- IN UINT8 MaxPacketLength,\r
- IN BOOLEAN IsNewTransfer,\r
- IN OUT UINT8 *DataToggle OPTIONAL,\r
- IN UINTN PollingInterval OPTIONAL,\r
- IN UINTN DataLength OPTIONAL,\r
- IN EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunction OPTIONAL,\r
- IN VOID *Context OPTIONAL\r
- );\r
-/**\r
-\r
- Submits synchronous interrupt transfer to an interrupt endpoint\r
- of a USB device.\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,\r
- which is assigned during USB enumeration.\r
- @param EndPointAddress The combination of an endpoint number and an endpoint\r
- direction of the target USB device. Each endpoint\r
- address supports data transfer in one direction\r
- except the control endpoint (whose default\r
- endpoint address is 0). It is the caller's responsibility\r
- to make sure that the EndPointAddress represents\r
- an interrupt endpoint.\r
- @param IsSlowDevice Indicates whether the target device is slow device\r
- or full-speed device.\r
- @param MaxPacketLength Indicates the maximum packet size the target endpoint\r
- is capable of sending or receiving.\r
- @param Data A pointer to the buffer of data that will be transmitted\r
- to USB device or received from USB device.\r
- @param DataLength On input, the size, in bytes, of the data buffer specified\r
- by Data. On output, the number of bytes transferred.\r
- @param DataToggle A pointer to the data toggle value. On input, it indicates\r
- the initial data toggle value the synchronous interrupt\r
- transfer should adopt;\r
- on output, it is updated to indicate the data toggle value\r
- of the subsequent synchronous interrupt transfer.\r
- @param TimeOut Indicates the maximum time, in microseconds, which the\r
- transfer is allowed to complete.\r
- @param TransferResult A pointer to the detailed result information from\r
- the synchronous interrupt transfer.\r
-\r
- @retval EFI_UNSUPPORTED This interface not available.\r
- @retval EFI_INVALID_PARAMETER Parameters not follow spec\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciSyncInterruptTransfer (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 DeviceAddress,\r
- IN UINT8 EndPointAddress,\r
- IN BOOLEAN IsSlowDevice,\r
- IN UINT8 MaxPacketLength,\r
- IN OUT VOID *Data,\r
- IN OUT UINTN *DataLength,\r
- IN OUT UINT8 *DataToggle,\r
- IN UINTN TimeOut,\r
- OUT UINT32 *TransferResult\r
- );\r
-/**\r
-\r
- Submits isochronous transfer to a target USB device.\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,\r
- which is assigned during USB enumeration.\r
- @param EndPointAddress End point address\r
- @param MaximumPacketLength Indicates the maximum packet size that the\r
- default control transfer endpoint is capable of\r
- sending or receiving.\r
- @param Data A pointer to the buffer of data that will be transmitted\r
- to USB device or received from USB device.\r
- @param DataLength Indicates the size, in bytes, of the data buffer\r
- specified by Data.\r
- @param TransferResult A pointer to the detailed result information generated\r
- by this control transfer.\r
-\r
- @retval EFI_UNSUPPORTED This interface not available\r
- @retval EFI_INVALID_PARAMETER Data is NULL or DataLength is 0 or TransferResult is NULL\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciIsochronousTransfer (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 DeviceAddress,\r
- IN UINT8 EndPointAddress,\r
- IN UINT8 MaximumPacketLength,\r
- IN OUT VOID *Data,\r
- IN OUT UINTN DataLength,\r
- OUT UINT32 *TransferResult\r
- );\r
-/**\r
-\r
- Submits Async isochronous transfer to a target USB device.\r
-\r
- @param his A pointer to the EFI_USB_HC_PROTOCOL instance.\r
- @param DeviceAddress Represents the address of the target device on the USB,\r
- which is assigned during USB enumeration.\r
- @param EndPointAddress End point address\r
- @param MaximumPacketLength Indicates the maximum packet size that the\r
- default control transfer endpoint is capable of\r
- sending or receiving.\r
- @param Data A pointer to the buffer of data that will be transmitted\r
- to USB device or received from USB device.\r
- @param IsochronousCallBack When the transfer complete, the call back function will be called\r
- @param Context Pass to the call back function as parameter\r
-\r
- @retval EFI_UNSUPPORTED This interface not available\r
- @retval EFI_INVALID_PARAMETER Data is NULL or Datalength is 0\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciAsyncIsochronousTransfer (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 DeviceAddress,\r
- IN UINT8 EndPointAddress,\r
- IN UINT8 MaximumPacketLength,\r
- IN OUT VOID *Data,\r
- IN OUT UINTN DataLength,\r
- IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack,\r
- IN VOID *Context OPTIONAL\r
- );\r
-\r
-/**\r
-\r
- Retrieves the number of root hub ports.\r
-\r
- @param This A pointer to the EFI_USB_HC_PROTOCOL instance.\r
- @param NumOfPorts A pointer to the number of the root hub ports.\r
-\r
- @retval EFI_SUCCESS The port number was retrieved successfully.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciGetRootHubNumOfPorts (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- OUT UINT8 *NumOfPorts\r
- );\r
-/**\r
-\r
- Retrieves the current status of a USB root hub port.\r
-\r
- @param This A pointer to the EFI_USB_HC_PROTOCOL.\r
- @param PortNumber Specifies the root hub port from which the status\r
- is to be retrieved. This value is zero-based. For example,\r
- if a root hub has two ports, then the first port is numbered 0,\r
- and the second port is numbered 1.\r
- @param PortStatus A pointer to the current port status bits and\r
- 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
- @retval EFI_INVALID_PARAMETER Port number not valid\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciGetRootHubPortStatus (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 PortNumber,\r
- OUT EFI_USB_PORT_STATUS *PortStatus\r
- );\r
-\r
-/**\r
-\r
- Sets a feature for the specified root hub port.\r
-\r
- @param This A pointer to the EFI_USB_HC_PROTOCOL.\r
- @param PortNumber Specifies the root hub port whose feature\r
- is requested to be set.\r
- @param PortFeature Indicates the feature selector associated\r
- with the feature set request.\r
-\r
- @retval EFI_SUCCESS The feature specified by PortFeature was set for the\r
- USB root hub port specified by PortNumber.\r
- @retval EFI_DEVICE_ERROR Set feature failed because of hardware issue\r
- @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciSetRootHubPortFeature (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 PortNumber,\r
- IN EFI_USB_PORT_FEATURE PortFeature\r
- );\r
-/**\r
-\r
- Clears a feature for the specified root hub port.\r
-\r
- @param This A pointer to the EFI_USB_HC_PROTOCOL instance.\r
- @param PortNumber Specifies the root hub port whose feature\r
- is requested to be cleared.\r
- @param PortFeature Indicates the feature selector associated with the\r
- feature clear request.\r
-\r
- @retval EFI_SUCCESS The feature specified by PortFeature was cleared for the\r
- USB root hub port specified by PortNumber.\r
- @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.\r
- @retval EFI_DEVICE_ERROR Some error happened when clearing feature\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciClearRootHubPortFeature (\r
- IN EFI_USB_HC_PROTOCOL *This,\r
- IN UINT8 PortNumber,\r
- IN EFI_USB_PORT_FEATURE PortFeature\r
- );\r
-\r
-\r
-/**\r
- Test to see if this driver supports ControllerHandle. Any\r
- ControllerHandle that has UsbHcProtocol installed will be supported.\r
-\r
- @param This Protocol instance pointer.\r
- @param Controller Handle of device to test.\r
- @param RemainingDevicePath Not used.\r
-\r
- @return EFI_SUCCESS This driver supports this device.\r
- @return EFI_UNSUPPORTED This driver does not support this device.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-\r
-OHCIDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-/**\r
- Starting the Usb OHCI Driver.\r
-\r
- @param This Protocol instance pointer.\r
- @param Controller Handle of device to test.\r
- @param RemainingDevicePath Not used.\r
-\r
- @retval EFI_SUCCESS This driver supports this device.\r
- @retval EFI_UNSUPPORTED This driver does not support this device.\r
- @retval EFI_DEVICE_ERROR This driver cannot be started due to device Error.\r
- EFI_OUT_OF_RESOURCES- Failed due to resource shortage.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OHCIDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-/**\r
- Stop this driver on ControllerHandle. Support stopping any child handles\r
- created by this driver.\r
-\r
- @param This Protocol instance pointer.\r
- @param Controller Handle of device to stop driver on.\r
- @param NumberOfChildren Number of Children in the ChildHandleBuffer.\r
- @param ChildHandleBuffer List of handles for the children we need to stop.\r
-\r
- @return EFI_SUCCESS\r
- @return others\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OHCIDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- );\r
-\r
-#endif\r