TianoCore EDK2 master
|
#include "Xhci.h"
Go to the source code of this file.
XHCI transfer scheduling routines.
(C) Copyright 2023 Hewlett Packard Enterprise Development LP
Copyright (c) 2011 - 2020, Intel Corporation. All rights reserved.
Copyright (c) Microsoft Corporation.
Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file XhciSched.c.
VOID CreateEventRing | ( | IN USB_XHCI_INSTANCE * | Xhc, |
OUT EVENT_RING * | EventRing | ||
) |
Create XHCI event ring.
Xhc | The XHCI Instance. |
EventRing | The created event ring. |
Definition at line 789 of file XhciSched.c.
VOID CreateTransferRing | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINTN | TrbNum, | ||
OUT TRANSFER_RING * | TransferRing | ||
) |
Create XHCI transfer ring.
Xhc | The XHCI Instance. |
TrbNum | The number of TRB in the ring. |
TransferRing | The created transfer ring. |
Definition at line 890 of file XhciSched.c.
BOOLEAN IsAsyncIntTrb | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN TRB_TEMPLATE * | Trb, | ||
OUT URB ** | Urb | ||
) |
Check if the Trb is a transaction of the URBs in XHCI's asynchronous transfer list.
Xhc | The XHCI Instance. |
Trb | The TRB to be checked. |
Urb | The pointer to the matched Urb. |
TRUE | The Trb is matched with a transaction of the URBs in the async list. |
FALSE | The Trb is not matched with any URBs in the async list. |
Definition at line 1069 of file XhciSched.c.
BOOLEAN IsTransferRingTrb | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN TRB_TEMPLATE * | Trb, | ||
IN URB * | Urb | ||
) |
Check if the Trb is a transaction of the URB.
Xhc | The XHCI Instance. |
Trb | The TRB to be checked |
Urb | The URB to be checked. |
TRUE | It is a transaction of the URB. |
FALSE | It is not any transaction of the URB. |
Definition at line 1024 of file XhciSched.c.
EFI_STATUS RingIntTransferDoorBell | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
Ring the door bell to notify XHCI there is a transaction to be executed through URB.
Xhc | The XHCI Instance. |
Urb | The URB to be rung. |
EFI_SUCCESS | Successfully ring the door bell. |
Definition at line 2099 of file XhciSched.c.
UINT8 EFIAPI XhcBusDevAddrToSlotId | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | BusDevAddr | ||
) |
Find out the actual device address according to the requested device address from UsbBus.
Xhc | The XHCI Instance. |
BusDevAddr | The requested device address by UsbBus upper driver. |
Definition at line 1853 of file XhciSched.c.
EFI_STATUS EFIAPI XhcCheckNewEvent | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN EVENT_RING * | EvtRing, | ||
OUT TRB_TEMPLATE ** | NewEvtTrb | ||
) |
Check if there is a new generated event.
Xhc | The XHCI Instance. |
EvtRing | The event ring to check. |
NewEvtTrb | The new event TRB found. |
EFI_SUCCESS | Found a new event TRB at the event ring. |
EFI_NOT_READY | The event ring has no new event. |
Definition at line 2037 of file XhciSched.c.
BOOLEAN XhcCheckUrbResult | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
Check the URB's execution result and update the URB's result accordingly.
Xhc | The XHCI Instance. |
Urb | The URB to check result. |
Definition at line 1101 of file XhciSched.c.
VOID XhcCmdRingCmdAbort | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId | ||
) |
Set Command abort
Xhc | The XHCI Instance. |
SlotId | The slot id to be disabled. |
Definition at line 2121 of file XhciSched.c.
EFI_STATUS EFIAPI XhcCmdTransfer | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN TRB_TEMPLATE * | CmdTrb, | ||
IN UINTN | Timeout, | ||
OUT TRB_TEMPLATE ** | EvtTrb | ||
) |
Execute a XHCI cmd TRB pointed by CmdTrb.
Xhc | The XHCI Instance. |
CmdTrb | The cmd TRB to be executed. |
Timeout | Indicates the maximum time, in millisecond, which the transfer is allowed to complete. |
EvtTrb | The event TRB corresponding to the cmd TRB. |
EFI_SUCCESS | The transfer was completed successfully. |
EFI_INVALID_PARAMETER | Some parameters are invalid. |
EFI_TIMEOUT | The transfer failed due to timeout. |
EFI_DEVICE_ERROR | The transfer failed due to host controller error. |
Definition at line 67 of file XhciSched.c.
EFI_STATUS XhcConfigHubContext | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | PortNum, | ||
IN UINT8 | TTT, | ||
IN UINT8 | MTT | ||
) |
Evaluate the slot context for hub device through XHCI's Configure_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
PortNum | The total number of downstream port supported by the hub. |
TTT | The TT think time of the hub device. |
MTT | The multi-TT of the hub device. |
EFI_SUCCESS | Successfully configure the hub device's slot context. |
Definition at line 4134 of file XhciSched.c.
EFI_STATUS XhcConfigHubContext64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | PortNum, | ||
IN UINT8 | TTT, | ||
IN UINT8 | MTT | ||
) |
Evaluate the slot context for hub device through XHCI's Configure_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
PortNum | The total number of downstream port supported by the hub. |
TTT | The TT think time of the hub device. |
MTT | The multi-TT of the hub device. |
EFI_SUCCESS | Successfully configure the hub device's slot context. |
Definition at line 4204 of file XhciSched.c.
URB * XhcCreateCmdTrb | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN TRB_TEMPLATE * | CmdTrb | ||
) |
Create a command transfer TRB to support XHCI command interfaces.
Xhc | The XHCI Instance. |
CmdTrb | The cmd TRB to be executed. |
Definition at line 25 of file XhciSched.c.
EFI_STATUS XhcCreateTransferTrb | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
Create a transfer TRB.
Xhc | The XHCI Instance |
Urb | The urb used to construct the transfer TRB. |
Definition at line 218 of file XhciSched.c.
URB * XhcCreateUrb | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | BusAddr, | ||
IN UINT8 | EpAddr, | ||
IN UINT8 | DevSpeed, | ||
IN UINTN | MaxPacket, | ||
IN UINTN | Type, | ||
IN EFI_USB_DEVICE_REQUEST * | Request, | ||
IN VOID * | Data, | ||
IN UINTN | DataLen, | ||
IN EFI_ASYNC_USB_TRANSFER_CALLBACK | Callback, | ||
IN VOID * | Context | ||
) |
Create a new URB for a new transaction.
Xhc | The XHCI Instance |
BusAddr | The logical device address assigned by UsbBus driver |
EpAddr | Endpoint addrress |
DevSpeed | The device speed |
MaxPacket | The max packet length of the endpoint |
Type | The transaction type |
Request | The standard USB request for control transfer |
Data | The user data to transfer |
DataLen | The length of data buffer |
Callback | The function to call when data is transferred |
Context | The context to the callback |
Definition at line 134 of file XhciSched.c.
EFI_STATUS EFIAPI XhcDequeueTrbFromEndpoint | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
System software shall use a Stop Endpoint Command (section 4.6.9) and the Set TR Dequeue Pointer Command (section 4.6.10) to remove the timed-out TDs from the xHC transfer ring. The next write to the Doorbell of the Endpoint will transition the Endpoint Context from the Stopped to the Running state.
Xhc | The XHCI Instance. |
Urb | The urb which doesn't get completed in a specified timeout range. |
EFI_SUCCESS | The dequeuing of the TDs is successful. |
EFI_ALREADY_STARTED | The Urb is finished so no deque is needed. |
Others | Failed to stop the endpoint and dequeue the TDs. |
Definition at line 724 of file XhciSched.c.
EFI_STATUS EFIAPI XhcDisableSlotCmd | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId | ||
) |
Disable the specified device slot.
Xhc | The XHCI Instance. |
SlotId | The slot id to be disabled. |
EFI_SUCCESS | Successfully disable the device slot. |
Definition at line 2596 of file XhciSched.c.
EFI_STATUS EFIAPI XhcDisableSlotCmd64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId | ||
) |
Disable the specified device slot.
Xhc | The XHCI Instance. |
SlotId | The slot id to be disabled. |
EFI_SUCCESS | Successfully disable the device slot. |
Definition at line 2709 of file XhciSched.c.
Calculate the device context index by endpoint address and direction.
EpAddr | The target endpoint number. |
Direction | The direction of the target endpoint. |
Definition at line 1823 of file XhciSched.c.
EFI_STATUS EFIAPI XhcEvaluateContext | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT32 | MaxPacketSize | ||
) |
Evaluate the endpoint 0 context through XHCI's Evaluate_Context cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be evaluated. |
MaxPacketSize | The max packet size supported by the device control transfer. |
EFI_SUCCESS | Successfully evaluate the device endpoint 0. |
Definition at line 4007 of file XhciSched.c.
EFI_STATUS EFIAPI XhcEvaluateContext64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT32 | MaxPacketSize | ||
) |
Evaluate the endpoint 0 context through XHCI's Evaluate_Context cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be evaluated. |
MaxPacketSize | The max packet size supported by the device control transfer. |
EFI_SUCCESS | Successfully evaluate the device endpoint 0. |
Definition at line 4070 of file XhciSched.c.
EFI_STATUS XhcExecTransfer | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN BOOLEAN | CmdTransfer, | ||
IN URB * | Urb, | ||
IN UINTN | Timeout | ||
) |
Execute the transfer by polling the URB. This is a synchronous operation.
Xhc | The XHCI Instance. |
CmdTransfer | The executed URB is for cmd transfer or not. |
Urb | The URB to execute. |
Timeout | The time to wait before abort, in millisecond. |
Definition at line 1294 of file XhciSched.c.
EFI_STATUS XhcFlushAsyncIntMap | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
Flush data from PCI controller specific address to mapped system memory address.
Xhc | The XHCI device. |
Urb | The URB to unmap. |
EFI_SUCCESS | Success to flush data to mapped system memory. |
EFI_DEVICE_ERROR | Fail to flush data to mapped system memory. |
Definition at line 1562 of file XhciSched.c.
EFI_STATUS EFIAPI XhcFreeEventRing | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN EVENT_RING * | EventRing | ||
) |
Free XHCI event ring.
Xhc | The XHCI Instance. |
EventRing | The event ring to be freed. |
Definition at line 939 of file XhciSched.c.
VOID XhcFreeSched | ( | IN USB_XHCI_INSTANCE * | Xhc | ) |
Free the resouce allocated at initializing schedule.
Xhc | The XHCI Instance. |
Definition at line 967 of file XhciSched.c.
VOID XhcFreeUrb | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
Free an allocated URB.
Xhc | The XHCI device. |
Urb | The URB to free. |
Definition at line 192 of file XhciSched.c.
VOID XhciDelAllAsyncIntTransfers | ( | IN USB_XHCI_INSTANCE * | Xhc | ) |
Remove all the asynchronous interrutp transfers.
Xhc | The XHCI Instance. |
Definition at line 1430 of file XhciSched.c.
EFI_STATUS XhciDelAsyncIntTransfer | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | BusAddr, | ||
IN UINT8 | EpNum | ||
) |
Delete a single asynchronous interrupt transfer for the device and endpoint.
Xhc | The XHCI Instance. |
BusAddr | The logical device address assigned by UsbBus driver. |
EpNum | The endpoint of the target. |
EFI_SUCCESS | An asynchronous transfer is removed. |
EFI_NOT_FOUND | No transfer for the device is found. |
Definition at line 1381 of file XhciSched.c.
URB * XhciInsertAsyncIntTransfer | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | BusAddr, | ||
IN UINT8 | EpAddr, | ||
IN UINT8 | DevSpeed, | ||
IN UINTN | MaxPacket, | ||
IN UINTN | DataLen, | ||
IN EFI_ASYNC_USB_TRANSFER_CALLBACK | Callback, | ||
IN VOID * | Context | ||
) |
Insert a single asynchronous interrupt transfer for the device and endpoint.
Xhc | The XHCI Instance |
BusAddr | The logical device address assigned by UsbBus driver |
EpAddr | Endpoint addrress |
DevSpeed | The device speed |
MaxPacket | The max packet length of the endpoint |
DataLen | The length of data buffer |
Callback | The function to call when data is transferred |
Context | The context to the callback |
Definition at line 1474 of file XhciSched.c.
EFI_STATUS EFIAPI XhcInitializeDeviceSlot | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN USB_DEV_ROUTE | ParentRouteChart, | ||
IN UINT16 | ParentPort, | ||
IN USB_DEV_ROUTE | RouteChart, | ||
IN UINT8 | DeviceSpeed | ||
) |
Assign and initialize the device slot for a new device.
Xhc | The XHCI Instance. |
ParentRouteChart | The route string pointed to the parent device. |
ParentPort | The port at which the device is located. |
RouteChart | The route string pointed to the device. |
DeviceSpeed | The device speed. |
EFI_SUCCESS | Successfully assign a slot to the device and assign an address to it. |
Definition at line 2147 of file XhciSched.c.
EFI_STATUS EFIAPI XhcInitializeDeviceSlot64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN USB_DEV_ROUTE | ParentRouteChart, | ||
IN UINT16 | ParentPort, | ||
IN USB_DEV_ROUTE | RouteChart, | ||
IN UINT8 | DeviceSpeed | ||
) |
Assign and initialize the device slot for a new device.
Xhc | The XHCI Instance. |
ParentRouteChart | The route string pointed to the parent device. |
ParentPort | The port at which the device is located. |
RouteChart | The route string pointed to the device. |
DeviceSpeed | The device speed. |
EFI_SUCCESS | Successfully assign a slot to the device and assign an address to it. |
Definition at line 2373 of file XhciSched.c.
UINT8 EFIAPI XhcInitializeEndpointContext | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | DeviceSpeed, | ||
IN INPUT_CONTEXT * | InputContext, | ||
IN USB_INTERFACE_DESCRIPTOR * | IfDesc | ||
) |
Initialize endpoint context in input context.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
DeviceSpeed | The device's speed. |
InputContext | The pointer to the input context. |
IfDesc | The pointer to the usb device interface descriptor. |
Definition at line 2825 of file XhciSched.c.
UINT8 EFIAPI XhcInitializeEndpointContext64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | DeviceSpeed, | ||
IN INPUT_CONTEXT_64 * | InputContext, | ||
IN USB_INTERFACE_DESCRIPTOR * | IfDesc | ||
) |
Initialize endpoint context in input context.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
DeviceSpeed | The device's speed. |
InputContext | The pointer to the input context. |
IfDesc | The pointer to the usb device interface descriptor. |
Definition at line 3028 of file XhciSched.c.
VOID XhcInitSched | ( | IN USB_XHCI_INSTANCE * | Xhc | ) |
Initialize the XHCI host controller for schedule.
Xhc | The XHCI Instance to be initialized. |
Definition at line 475 of file XhciSched.c.
Interrupt transfer periodic check handler.
Event | Interrupt event. |
Context | Pointer to USB_XHCI_INSTANCE. |
Definition at line 1614 of file XhciSched.c.
EFI_STATUS EFIAPI XhcPollPortStatusChange | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN USB_DEV_ROUTE | ParentRouteChart, | ||
IN UINT8 | Port, | ||
IN EFI_USB_PORT_STATUS * | PortState | ||
) |
Monitor the port status change. Enable/Disable device slot if there is a device attached/detached.
Xhc | The XHCI Instance. |
ParentRouteChart | The route string pointed to the parent device if it exists. |
Port | The port to be polled. |
PortState | The port state. |
EFI_SUCCESS | Successfully enable/disable device slot according to port state. |
Others | Should not appear. |
Definition at line 1727 of file XhciSched.c.
EFI_STATUS EFIAPI XhcRecoverHaltedEndpoint | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
System software shall use a Reset Endpoint Command (section 4.11.4.7) to remove the Halted condition in the xHC. After the successful completion of the Reset Endpoint Command, the Endpoint Context is transitioned from the Halted to the Stopped state and the Transfer Ring of the endpoint is reenabled. The next write to the Doorbell of the Endpoint will transition the Endpoint Context from the Stopped to the Running state.
Xhc | The XHCI Instance. |
Urb | The urb which makes the endpoint halted. |
EFI_SUCCESS | The recovery is successful. |
Others | Failed to recovery halted endpoint. |
Definition at line 661 of file XhciSched.c.
EFI_STATUS EFIAPI XhcResetEndpoint | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | Dci | ||
) |
Reset endpoint through XHCI's Reset_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
Dci | The device context index of endpoint. |
EFI_SUCCESS | Reset endpoint successfully. |
Others | Failed to reset endpoint. |
Definition at line 3491 of file XhciSched.c.
EFI_STATUS EFIAPI XhcRingDoorBell | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | Dci | ||
) |
Ring the door bell to notify XHCI there is a transaction to be executed.
Xhc | The XHCI Instance. |
SlotId | The slot id of the target device. |
Dci | The device context index of the target slot or endpoint. |
EFI_SUCCESS | Successfully ring the door bell. |
Definition at line 2074 of file XhciSched.c.
UINT8 EFIAPI XhcRouteStringToSlotId | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN USB_DEV_ROUTE | RouteString | ||
) |
Find out the slot id according to the device's route string.
Xhc | The XHCI Instance. |
RouteString | The route string described the device location. |
Definition at line 1887 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSetConfigCmd | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | DeviceSpeed, | ||
IN USB_CONFIG_DESCRIPTOR * | ConfigDesc | ||
) |
Configure all the device endpoints through XHCI's Configure_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
DeviceSpeed | The device's speed. |
ConfigDesc | The pointer to the usb device configuration descriptor. |
EFI_SUCCESS | Successfully configure all the device endpoints. |
Definition at line 3230 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSetConfigCmd64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | DeviceSpeed, | ||
IN USB_CONFIG_DESCRIPTOR * | ConfigDesc | ||
) |
Configure all the device endpoints through XHCI's Configure_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
DeviceSpeed | The device's speed. |
ConfigDesc | The pointer to the usb device configuration descriptor. |
EFI_SUCCESS | Successfully configure all the device endpoints. |
Definition at line 3323 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSetInterface | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | DeviceSpeed, | ||
IN USB_CONFIG_DESCRIPTOR * | ConfigDesc, | ||
IN EFI_USB_DEVICE_REQUEST * | Request | ||
) |
Set interface through XHCI's Configure_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
DeviceSpeed | The device's speed. |
ConfigDesc | The pointer to the usb device configuration descriptor. |
Request | USB device request to send. |
EFI_SUCCESS | Successfully set interface. |
Definition at line 3595 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSetInterface64 | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | DeviceSpeed, | ||
IN USB_CONFIG_DESCRIPTOR * | ConfigDesc, | ||
IN EFI_USB_DEVICE_REQUEST * | Request | ||
) |
Set interface through XHCI's Configure_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
DeviceSpeed | The device's speed. |
ConfigDesc | The pointer to the usb device configuration descriptor. |
Request | USB device request to send. |
EFI_SUCCESS | Successfully set interface. |
Definition at line 3802 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSetTrDequeuePointer | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | Dci, | ||
IN URB * | Urb | ||
) |
Set transfer ring dequeue pointer through XHCI's Set_Tr_Dequeue_Pointer cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
Dci | The device context index of endpoint. |
Urb | The dequeue pointer of the transfer ring specified by the urb to be updated. |
EFI_SUCCESS | Set transfer ring dequeue pointer succeeds. |
Others | Failed to set transfer ring dequeue pointer. |
Definition at line 3541 of file XhciSched.c.
EFI_STATUS EFIAPI XhcStopEndpoint | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN UINT8 | SlotId, | ||
IN UINT8 | Dci, | ||
IN URB *PendingUrb | OPTIONAL | ||
) |
Stop endpoint through XHCI's Stop_Endpoint cmd.
Xhc | The XHCI Instance. |
SlotId | The slot id to be configured. |
Dci | The device context index of endpoint. |
PendingUrb | The pending URB to check completion status when stopping the end point. |
EFI_SUCCESS | Stop endpoint successfully. |
Others | Failed to stop endpoint. |
Definition at line 3417 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSyncEventRing | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN EVENT_RING * | EvtRing | ||
) |
Synchronize the specified event ring to update the enqueue and dequeue pointer.
Xhc | The XHCI Instance. |
EvtRing | The event ring to sync. |
EFI_SUCCESS | The event ring is synchronized successfully. |
Definition at line 1921 of file XhciSched.c.
EFI_STATUS EFIAPI XhcSyncTrsRing | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN TRANSFER_RING * | TrsRing | ||
) |
Synchronize the specified transfer ring to update the enqueue and dequeue pointer.
Xhc | The XHCI Instance. |
TrsRing | The transfer ring to sync. |
EFI_SUCCESS | The transfer ring is synchronized successfully. |
Definition at line 1970 of file XhciSched.c.
VOID XhcUpdateAsyncRequest | ( | IN USB_XHCI_INSTANCE * | Xhc, |
IN URB * | Urb | ||
) |
Update the queue head for next round of asynchronous transfer
Xhc | The XHCI Instance. |
Urb | The URB to update |
Definition at line 1530 of file XhciSched.c.