update dcbaa functions

This commit is contained in:
xj 2024-07-03 01:19:52 -07:00
parent 12e5b67108
commit aedc9d86fc
2 changed files with 10 additions and 2 deletions

View File

@ -674,6 +674,7 @@ err_reset:
static int xhci_dcbaa_alloc ( struct xhci_host *xhci ) {
size_t len;
uintptr_t dcbaap;
uint64_t dcbaap_phy;
int rc;
/* Allocate and initialise structure. Must be at least
@ -683,6 +684,9 @@ static int xhci_dcbaa_alloc ( struct xhci_host *xhci ) {
*/
len = ( ( xhci->slots + 1 ) * sizeof ( xhci->dcbaa.context[0] ) );
xhci->dcbaa.context = usb_align(xhci_align ( len ), len);
//
if ( ! xhci->dcbaa.context ) {
USB_LOG_ERR("XHCI %s could not allocate DCBAA\n", xhci->name );
rc = -ENOMEM;

View File

@ -859,8 +859,12 @@ struct xhci_host {
/** USB legacy support capability (if present and enabled) */
unsigned int legacy;
/** Device context base address array */
void *phy_acbaa;
/*
* Device context base address array.
*
* dcbaa_addr holds the virtual address of the dcbaa, meanwhile acbaa keeps the value that should be writen to XHCI_OP_DCBAAP.
*/
void *dcbaa_addr;
struct xhci_dcbaa dcbaa;
/** Scratchpad buffer */