diff options
Diffstat (limited to 'src/drivers/usb/xhci.c')
-rw-r--r-- | src/drivers/usb/xhci.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/drivers/usb/xhci.c b/src/drivers/usb/xhci.c index b36e7799..cdebc47d 100644 --- a/src/drivers/usb/xhci.c +++ b/src/drivers/usb/xhci.c @@ -1616,6 +1616,22 @@ static void xhci_port_status ( struct xhci_device *xhci, } /** + * Handle host controller event + * + * @v xhci xHCI device + * @v host Host controller event + */ +static void xhci_host_controller ( struct xhci_device *xhci, + struct xhci_trb_host_controller *host ) { + int rc; + + /* Construct error */ + rc = -ECODE ( host->code ); + DBGC ( xhci, "XHCI %p host controller event (code %d): %s\n", + xhci, host->code, strerror ( rc ) ); +} + +/** * Poll event ring * * @v xhci xHCI device @@ -1656,6 +1672,10 @@ static void xhci_event_poll ( struct xhci_device *xhci ) { xhci_port_status ( xhci, &trb->port ); break; + case XHCI_TRB_HOST_CONTROLLER: + xhci_host_controller ( xhci, &trb->host ); + break; + default: DBGC ( xhci, "XHCI %p unrecognised event %#x\n:", xhci, event->cons ); |