diff options
author | Michael Brown | 2015-03-23 16:59:51 +0100 |
---|---|---|
committer | Michael Brown | 2015-03-23 17:21:13 +0100 |
commit | 9e88194655c7d074fb7eeab834db97353c47282d (patch) | |
tree | 9b451e999176a2aa082e36f314b537f7d5dda41a /src/drivers/usb/xhci.c | |
parent | [usb] Reset endpoints without waiting for a new transfer to be enqueued (diff) | |
download | ipxe-9e88194655c7d074fb7eeab834db97353c47282d.tar.gz ipxe-9e88194655c7d074fb7eeab834db97353c47282d.tar.xz ipxe-9e88194655c7d074fb7eeab834db97353c47282d.zip |
[usb] Add clear_tt() hub method to clear transaction translator buffer
Signed-off-by: Michael Brown <mcb30@ipxe.org>
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 a940a73a..69d621d9 100644 --- a/src/drivers/usb/xhci.c +++ b/src/drivers/usb/xhci.c @@ -2992,6 +2992,25 @@ static int xhci_hub_speed ( struct usb_hub *hub, struct usb_port *port ) { return 0; } +/** + * Clear transaction translator buffer + * + * @v hub USB hub + * @v port USB port + * @v ep USB endpoint + * @ret rc Return status code + */ +static int xhci_hub_clear_tt ( struct usb_hub *hub, struct usb_port *port, + struct usb_endpoint *ep ) { + struct ehci_device *ehci = usb_hub_get_drvdata ( hub ); + + /* Should never be called; this is a root hub */ + DBGC ( ehci, "XHCI %p port %d nonsensical CLEAR_TT for %s endpoint " + "%02x\n", ehci, port->address, ep->usb->name, ep->address ); + + return -ENOTSUP; +} + /****************************************************************************** * * PCI interface @@ -3025,6 +3044,7 @@ static struct usb_host_operations xhci_operations = { .enable = xhci_hub_enable, .disable = xhci_hub_disable, .speed = xhci_hub_speed, + .clear_tt = xhci_hub_clear_tt, }, }; |