diff --git a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/xhci/xhci.c b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/xhci/xhci.c index f4aa69518..54420b966 100644 --- a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/xhci/xhci.c +++ b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/port/xhci/xhci.c @@ -1050,21 +1050,28 @@ static void xhci_run ( struct xhci_host *xhci ) { uint32_t runtime; /* Configure number of device slots */ - config = readl ( xhci->op + XHCI_OP_CONFIG ); +// config = readl ( xhci->op + XHCI_OP_CONFIG ); + config = readl ( xhci->op_addr + XHCI_OP_CONFIG ); config &= ~XHCI_CONFIG_MAX_SLOTS_EN_MASK; config |= XHCI_CONFIG_MAX_SLOTS_EN ( xhci->slots ); - writel ( config, xhci->op + XHCI_OP_CONFIG ); +// writel ( config, xhci->op + XHCI_OP_CONFIG ); + writel ( config, xhci->op_addr + XHCI_OP_CONFIG ); /* Enable port interrupt */ - writel ( 500U, xhci->run + XHCI_RUN_IR_IMOD ( 0 ) ); - runtime = readl(xhci->run + XHCI_RUN_IR_IMAN ( 0 )); +// writel ( 500U, xhci->run + XHCI_RUN_IR_IMOD ( 0 ) ); + writel ( 500U, xhci->run_addr + XHCI_RUN_IR_IMOD ( 0 ) ); +// runtime = readl(xhci->run + XHCI_RUN_IR_IMAN ( 0 )); + runtime = readl(xhci->run_addr + XHCI_RUN_IR_IMAN ( 0 )); runtime |= XHCI_RUN_IR_IMAN_IE; - writel (runtime, xhci->run + XHCI_RUN_IR_IMAN ( 0 )); +// writel (runtime, xhci->run + XHCI_RUN_IR_IMAN ( 0 )); + writel (runtime, xhci->run_addr + XHCI_RUN_IR_IMAN ( 0 )); /* Set run/stop bit and enable interrupt */ - usbcmd = readl ( xhci->op + XHCI_OP_USBCMD ); +// usbcmd = readl ( xhci->op + XHCI_OP_USBCMD ); + usbcmd = readl ( xhci->op_addr + XHCI_OP_USBCMD ); usbcmd |= XHCI_USBCMD_RUN | XHCI_USBCMD_INTE; - writel ( usbcmd, xhci->op + XHCI_OP_USBCMD ); +// writel ( usbcmd, xhci->op + XHCI_OP_USBCMD ); + writel ( usbcmd, xhci->op_addr + XHCI_OP_USBCMD ); USB_LOG_DBG("XHCI %s start running\n", xhci->name ); } @@ -1077,15 +1084,18 @@ static void xhci_run ( struct xhci_host *xhci ) { static void xhci_event_free ( struct xhci_host *xhci ) { /* Clear event ring registers */ - writel ( 0, xhci->run + XHCI_RUN_ERSTSZ ( 0 ) ); - xhci_writeq ( xhci, 0, xhci->run + XHCI_RUN_ERSTBA ( 0 ) ); - xhci_writeq ( xhci, 0, xhci->run + XHCI_RUN_ERDP ( 0 ) ); +// writel ( 0, xhci->run + XHCI_RUN_ERSTSZ ( 0 ) ); + writel ( 0, xhci->run_addr + XHCI_RUN_ERSTSZ ( 0 ) ); +// xhci_writeq ( xhci, 0, xhci->run + XHCI_RUN_ERSTBA ( 0 ) ); + xhci_writeq ( xhci, 0, xhci->run_addr + XHCI_RUN_ERSTBA ( 0 ) ); +// xhci_writeq ( xhci, 0, xhci->run + XHCI_RUN_ERDP ( 0 ) ); + xhci_writeq ( xhci, 0, xhci->run_addr + XHCI_RUN_ERDP ( 0 ) ); /* Free event ring segment table */ - usb_free ( xhci->eseg ); +// usb_free ( xhci->eseg ); /* Free event ring */ - usb_free ( xhci->evts ); +// usb_free ( xhci->evts ); } /** @@ -1099,10 +1109,11 @@ static void xhci_command_free ( struct xhci_host *xhci ) { USB_ASSERT ( ( readl ( xhci->op + XHCI_OP_CRCR ) & XHCI_CRCR_CRR ) == 0 ); /* Clear command ring control register */ - xhci_writeq ( xhci, 0, xhci->op + XHCI_OP_CRCR ); +// xhci_writeq ( xhci, 0, xhci->op + XHCI_OP_CRCR ); + xhci_writeq ( xhci, 0, xhci->op_addr + XHCI_OP_CRCR ); /* Free TRB ring */ - usb_free ( xhci->cmds ); +// usb_free ( xhci->cmds ); } /** @@ -1125,11 +1136,11 @@ static void xhci_scratchpad_free ( struct xhci_host *xhci ) { /* Free scratchpad array */ array_len = ( scratch->count * sizeof ( scratch->array[0] ) ); - usb_free ( scratch->array ); +// usb_free ( scratch->array ); /* Free scratchpad buffers */ buffer_len = ( scratch->count * xhci->pagesize ); - usb_free ( scratch->buffer ); +// usb_free ( scratch->buffer ); } /**