summaryrefslogtreecommitdiffstats
path: root/src/drivers/usb/xhci.c
diff options
context:
space:
mode:
authorMichael Brown2015-02-05 13:40:05 +0100
committerMichael Brown2015-02-05 13:40:05 +0100
commit66048e3214adc8de4fff3beae1aa34facf307611 (patch)
tree9af602c41f2c21c9c1063800e30a6c81e2764cbf /src/drivers/usb/xhci.c
parent[ncm] Add support for CDC-NCM USB Ethernet devices (diff)
downloadipxe-66048e3214adc8de4fff3beae1aa34facf307611.tar.gz
ipxe-66048e3214adc8de4fff3beae1aa34facf307611.tar.xz
ipxe-66048e3214adc8de4fff3beae1aa34facf307611.zip
[usb] Report xHCI host controller events
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/usb/xhci.c')
-rw-r--r--src/drivers/usb/xhci.c20
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 );