X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FBus%2FUsb%2FUsbBusDxe%2FUsbUtility.h;h=23cf700bf33f31e2cdc5004d418c98674a9c5819;hp=ee44c6acd0664c9f1abcb816d403046213e8365a;hb=8616fc4c134d866cb6298faaa5d2dd17242dae9c;hpb=78f64f281ae77848694035bd878caffdd19c1f59 diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h index ee44c6acd0..23cf700bf3 100644 --- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h +++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h @@ -1,5 +1,7 @@ /** @file + Manage Usb Port/Hc/Etc. + Copyright (c) 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 @@ -9,22 +11,23 @@ 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. - Module Name: - - UsbUtility.h +**/ - Abstract: +#ifndef _EFI_USB_UTILITY_H_ +#define _EFI_USB_UTILITY_H_ - Manage Usb Port/Hc/Etc +/** + Get the capability of the host controller. - Revision History + @param UsbBus The usb driver. + @param MaxSpeed The maximum speed this host controller supports. + @param NumOfPort The number of the root hub port. + @param Is64BitCapable Whether this controller support 64 bit addressing. + @retval EFI_SUCCESS The host controller capability is returned. + @retval Others Failed to retrieve the host controller capability. **/ - -#ifndef _USB_UTILITY_H -#define _USB_UTILITY_H - EFI_STATUS UsbHcGetCapability ( IN USB_BUS *UsbBus, @@ -33,27 +36,67 @@ UsbHcGetCapability ( OUT UINT8 *Is64BitCapable ); +/** + Reset the host controller. + + @param UsbBus The usb bus driver. + @param Attributes The reset type, only global reset is used by this driver. + + @retval EFI_SUCCESS The reset operation succeeded. + @retval EFI_INVALID_PARAMETER Attributes is not valid. + @retval EFI_UNSUPPOURTED The type of reset specified by Attributes is + not currently supported by the host controller. + @retval EFI_DEVICE_ERROR Host controller isn't halted to reset. +**/ EFI_STATUS UsbHcReset ( IN USB_BUS *UsbBus, IN UINT16 Attributes ); +/** + Get the current operation state of the host controller. + + @param UsbBus The USB bus driver. + @param State The host controller operation state. + + @retval EFI_SUCCESS The operation state is returned in State. + @retval Others Failed to get the host controller state. +**/ EFI_STATUS UsbHcGetState ( IN USB_BUS *UsbBus, OUT EFI_USB_HC_STATE *State ); +/** + Set the host controller operation state. + + @param UsbBus The USB bus driver. + @param State The state to set. + + @retval EFI_SUCCESS The host controller is now working at State. + @retval Others Failed to set operation state. +**/ EFI_STATUS UsbHcSetState ( IN USB_BUS *UsbBus, IN EFI_USB_HC_STATE State ); +/** + Get the root hub port state. + + @param UsbBus The USB bus driver. + @param PortIndex The index of port. + @param PortStatus The variable to save port state. + @retval EFI_SUCCESS The root port state is returned in. + @retval Others Failed to get the root hub port state. + +**/ EFI_STATUS UsbHcGetRootHubPortStatus ( IN USB_BUS *UsbBus, @@ -61,7 +104,17 @@ UsbHcGetRootHubPortStatus ( OUT EFI_USB_PORT_STATUS *PortStatus ); +/** + Set the root hub port feature. + @param UsbBus The USB bus driver. + @param PortIndex The port index. + @param Feature The port feature to set. + + @retval EFI_SUCCESS The port feature is set. + @retval Others Failed to set port feature. + +**/ EFI_STATUS UsbHcSetRootHubPortFeature ( IN USB_BUS *UsbBus, @@ -69,7 +122,17 @@ UsbHcSetRootHubPortFeature ( IN EFI_USB_PORT_FEATURE Feature ); +/** + Clear the root hub port feature. + @param UsbBus The USB bus driver. + @param PortIndex The port index. + @param Feature The port feature to clear. + + @retval EFI_SUCCESS The port feature is clear. + @retval Others Failed to clear port feature. + +**/ EFI_STATUS UsbHcClearRootHubPortFeature ( IN USB_BUS *UsbBus, @@ -77,7 +140,25 @@ UsbHcClearRootHubPortFeature ( IN EFI_USB_PORT_FEATURE Feature ); +/** + Execute a control transfer to the device. + @param UsbBus The USB bus driver. + @param DevAddr The device address. + @param DevSpeed The device speed. + @param MaxPacket Maximum packet size of endpoint 0. + @param Request The control transfer request. + @param Direction The direction of data stage. + @param Data The buffer holding data. + @param DataLength The length of the data. + @param TimeOut Timeout (in ms) to wait until timeout. + @param Translator The transaction translator for low/full speed device. + @param UsbResult The result of transfer. + + @retval EFI_SUCCESS The control transfer finished without error. + @retval Others The control transfer failed, reason returned in UsbReslt. + +**/ EFI_STATUS UsbHcControlTransfer ( IN USB_BUS *UsbBus, @@ -93,7 +174,28 @@ UsbHcControlTransfer ( OUT UINT32 *UsbResult ); +/** + Execute a bulk transfer to the device's endpoint. + + @param UsbBus The USB bus driver. + @param DevAddr The target device address. + @param EpAddr The target endpoint address, with direction encoded in + bit 7. + @param DevSpeed The device's speed. + @param MaxPacket The endpoint's max packet size. + @param BufferNum The number of data buffer. + @param Data Array of pointers to data buffer. + @param DataLength The length of data buffer. + @param DataToggle On input, the initial data toggle to use, also return + the next toggle on output. + @param TimeOut The time to wait until timeout. + @param Translator The transaction translator for low/full speed device. + @param UsbResult The result of USB execution. + + @retval EFI_SUCCESS The bulk transfer is finished without error. + @retval Others Failed to execute bulk transfer, result in UsbResult. +**/ EFI_STATUS UsbHcBulkTransfer ( IN USB_BUS *UsbBus, @@ -110,7 +212,28 @@ UsbHcBulkTransfer ( OUT UINT32 *UsbResult ); +/** + Queue or cancel an asynchronous interrupt transfer. + + @param UsbBus The USB bus driver. + @param DevAddr The target device address. + @param EpAddr The target endpoint address, with direction encoded in + bit 7. + @param DevSpeed The device's speed. + @param MaxPacket The endpoint's max packet size. + @param IsNewTransfer Whether this is a new request. If not, cancel the old + request. + @param DataToggle Data toggle to use on input, next toggle on output. + @param PollingInterval The interval to poll the interrupt transfer (in ms). + @param DataLength The length of periodical data receive. + @param Translator The transaction translator for low/full speed device. + @param Callback Function to call when data is received. + @param Context The context to the callback. + + @retval EFI_SUCCESS The asynchronous transfer is queued. + @retval Others Failed to queue the transfer. +**/ EFI_STATUS UsbHcAsyncInterruptTransfer ( IN USB_BUS *UsbBus, @@ -127,7 +250,27 @@ UsbHcAsyncInterruptTransfer ( IN VOID *Context OPTIONAL ); +/** + Execute a synchronous interrupt transfer to the target endpoint. + + @param UsbBus The USB bus driver. + @param DevAddr The target device address. + @param EpAddr The target endpoint address, with direction encoded in + bit 7. + @param DevSpeed The device's speed. + @param MaxPacket The endpoint's max packet size. + @param Data Pointer to data buffer. + @param DataLength The length of data buffer. + @param DataToggle On input, the initial data toggle to use, also return + the next toggle on output. + @param TimeOut The time to wait until timeout. + @param Translator The transaction translator for low/full speed device. + @param UsbResult The result of USB execution. + + @retval EFI_SUCCESS The synchronous interrupt transfer is OK. + @retval Others Failed to execute the synchronous interrupt transfer. +**/ EFI_STATUS UsbHcSyncInterruptTransfer ( IN USB_BUS *UsbBus, @@ -143,7 +286,24 @@ UsbHcSyncInterruptTransfer ( OUT UINT32 *UsbResult ); +/** + Execute a synchronous Isochronous USB transfer. + + @param UsbBus The USB bus driver. + @param DevAddr The target device address. + @param EpAddr The target endpoint address, with direction encoded in + bit 7. + @param DevSpeed The device's speed. + @param MaxPacket The endpoint's max packet size. + @param BufferNum The number of data buffer. + @param Data Array of pointers to data buffer. + @param DataLength The length of data buffer. + @param Translator The transaction translator for low/full speed device. + @param UsbResult The result of USB execution. + @retval EFI_UNSUPPORTED The isochronous transfer isn't supported now. + +**/ EFI_STATUS UsbHcIsochronousTransfer ( IN USB_BUS *UsbBus, @@ -158,7 +318,25 @@ UsbHcIsochronousTransfer ( OUT UINT32 *UsbResult ); +/** + Queue an asynchronous isochronous transfer. + + @param UsbBus The USB bus driver. + @param DevAddr The target device address. + @param EpAddr The target endpoint address, with direction encoded in + bit 7. + @param DevSpeed The device's speed. + @param MaxPacket The endpoint's max packet size. + @param BufferNum The number of data buffer. + @param Data Array of pointers to data buffer. + @param DataLength The length of data buffer. + @param Translator The transaction translator for low/full speed device. + @param Callback The function to call when data is transferred. + @param Context The context to the callback function. + @retval EFI_UNSUPPORTED The asynchronous isochronous transfer isn't supported. + +**/ EFI_STATUS UsbHcAsyncIsochronousTransfer ( IN USB_BUS *UsbBus, @@ -174,37 +352,47 @@ UsbHcAsyncIsochronousTransfer ( IN VOID *Context ); +/** + Open the USB host controller protocol BY_CHILD. + + @param Bus The USB bus driver. + @param Child The child handle. + @return The open protocol return. + +**/ EFI_STATUS UsbOpenHostProtoByChild ( IN USB_BUS *Bus, IN EFI_HANDLE Child ); +/** + Close the USB host controller protocol BY_CHILD. + + @param Bus The USB bus driver. + @param Child The child handle. + @return None. + +**/ VOID UsbCloseHostProtoByChild ( IN USB_BUS *Bus, IN EFI_HANDLE Child ); +/** + return the current TPL, copied from the EDKII glue lib. + + @param VOID. + @return Current TPL. + +**/ EFI_TPL UsbGetCurrentTpl ( VOID ); - -VOID -UsbDebug ( - IN CHAR8 *Format, - ... - ); - - -VOID -UsbError ( - IN CHAR8 *Format, - ... - ); #endif