]>
git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Bus/Pci/EhciPei/EhciSched.h
2 Private Header file for Usb Host Controller PEIM
4 Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions
8 of the BSD License which accompanies this distribution. The
9 full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #ifndef _EFI_EHCI_SCHED_H_
18 #define _EFI_EHCI_SCHED_H_
21 Initialize the schedule data structure such as frame list.
23 @param Ehc The EHCI device to init schedule data for.
25 @retval EFI_OUT_OF_RESOURCES Failed to allocate resource to init schedule data.
26 @retval EFI_SUCCESS The schedule data is initialized.
31 IN PEI_USB2_HC_DEV
*Ehc
36 Free the schedule data. It may be partially initialized.
38 @param Ehc The EHCI device.
43 IN PEI_USB2_HC_DEV
*Ehc
48 Link the queue head to the asynchronous schedule list.
49 UEFI only supports one CTRL/BULK transfer at a time
50 due to its interfaces. This simplifies the AsynList
51 management: A reclamation header is always linked to
52 the AsyncListAddr, the only active QH is appended to it.
54 @param Ehc The EHCI device.
55 @param Qh The queue head to link.
60 IN PEI_USB2_HC_DEV
*Ehc
,
66 Unlink a queue head from the asynchronous schedule list.
67 Need to synchronize with hardware.
69 @param Ehc The EHCI device.
70 @param Qh The queue head to unlink.
74 EhcUnlinkQhFromAsync (
75 IN PEI_USB2_HC_DEV
*Ehc
,
81 Link a queue head for interrupt transfer to the periodic
82 schedule frame list. This code is very much the same as
85 @param Ehc The EHCI device.
86 @param Qh The queue head to link.
91 IN PEI_USB2_HC_DEV
*Ehc
,
97 Unlink an interrupt queue head from the periodic
100 @param Ehc The EHCI device.
101 @param Qh The queue head to unlink.
105 EhcUnlinkQhFromPeriod (
106 IN PEI_USB2_HC_DEV
*Ehc
,
112 Execute the transfer by polling the URB. This is a synchronous operation.
114 @param Ehc The EHCI device.
115 @param Urb The URB to execute.
116 @param TimeOut The time to wait before abort, in millisecond.
118 @retval EFI_DEVICE_ERROR The transfer failed due to transfer error.
119 @retval EFI_TIMEOUT The transfer failed due to time out.
120 @retval EFI_SUCCESS The transfer finished OK.
125 IN PEI_USB2_HC_DEV
*Ehc
,
132 Delete a single asynchronous interrupt transfer for
133 the device and endpoint.
135 @param Ehc The EHCI device.
136 @param DevAddr The address of the target device.
137 @param EpNum The endpoint of the target.
138 @param DataToggle Return the next data toggle to use.
140 @retval EFI_NOT_FOUND No transfer for the device is found.
141 @retval EFI_SUCCESS An asynchronous transfer is removed.
145 EhciDelAsyncIntTransfer (
146 IN PEI_USB2_HC_DEV
*Ehc
,
149 OUT UINT8
*DataToggle
154 Remove all the asynchronous interrutp transfers.
156 @param Ehc The EHCI device.
160 EhciDelAllAsyncIntTransfers (
161 IN PEI_USB2_HC_DEV
*Ehc
166 Remove all the asynchronous interrutp transfers.
168 @param Event Interrupt event.
169 @param Context Pointer to PEI_USB2_HC_DEV.
174 EhcMoniteAsyncRequests (