mirror of
https://github.com/ipxe/ipxe
synced 2025-12-13 15:31:42 +03:00
[usb] Add clear_tt() hub method to clear transaction translator buffer
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -1022,7 +1022,7 @@ static void ehci_endpoint_close ( struct usb_endpoint *ep ) {
|
||||
/* No way to prevent hardware from continuing to
|
||||
* access the memory, so leak it.
|
||||
*/
|
||||
DBGC ( ehci, "EHCI %p %s endpoint %d could not unschedule: "
|
||||
DBGC ( ehci, "EHCI %p %s endpoint %02x could not unschedule: "
|
||||
"%s\n", ehci, usb->name, ep->address, strerror ( rc ) );
|
||||
return;
|
||||
}
|
||||
@@ -1217,7 +1217,7 @@ static void ehci_endpoint_poll ( struct ehci_endpoint *endpoint ) {
|
||||
*/
|
||||
if ( status & EHCI_STATUS_HALTED ) {
|
||||
rc = -EIO_STATUS ( status );
|
||||
DBGC ( ehci, "EHCI %p %s endpoint %d completion %d "
|
||||
DBGC ( ehci, "EHCI %p %s endpoint %02x completion %d "
|
||||
"failed (status %02x): %s\n", ehci, usb->name,
|
||||
ep->address, index, status, strerror ( rc ) );
|
||||
while ( ! iobuf )
|
||||
@@ -1496,6 +1496,25 @@ static int ehci_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 ehci_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, "EHCI %p port %d nonsensical CLEAR_TT for %s endpoint "
|
||||
"%02x\n", ehci, port->address, ep->usb->name, ep->address );
|
||||
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
/**
|
||||
* Poll for port status changes
|
||||
*
|
||||
@@ -1706,6 +1725,7 @@ static struct usb_host_operations ehci_operations = {
|
||||
.enable = ehci_hub_enable,
|
||||
.disable = ehci_hub_disable,
|
||||
.speed = ehci_hub_speed,
|
||||
.clear_tt = ehci_hub_clear_tt,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user