diff options
author | Michael Brown <mcb30@ipxe.org> | 2015-12-06 23:41:26 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2015-12-07 13:08:23 +0000 |
commit | eb1fc1e9579a4f70bb28283bf3eadcf493fa0dcb (patch) | |
tree | 724bea4a4a87fd4625e45ba9811fa0b48c0dc97e /src/drivers/usb/uhci.c | |
parent | 15ce7ce355b3cfb5ec8bc2d51528b08f02f4648b (diff) | |
download | ipxe-eb1fc1e9579a4f70bb28283bf3eadcf493fa0dcb.tar.gz |
[usb] Record USB device speed separately from current port speed
Record the speed of a USB device based on the port's speed at the time
that the device was enabled. This allows us to remember the device's
speed even after the device has been disconnected (and so the port's
current speed has changed).
In particular, this allows us to correctly identify the transaction
translator for a low-speed or full-speed device after the device has
been disconnected.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/usb/uhci.c')
-rw-r--r-- | src/drivers/usb/uhci.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/drivers/usb/uhci.c b/src/drivers/usb/uhci.c index 4220bef72..528c1be1d 100644 --- a/src/drivers/usb/uhci.c +++ b/src/drivers/usb/uhci.c @@ -697,7 +697,7 @@ static int uhci_endpoint_open ( struct usb_endpoint *ep ) { goto err_ring_alloc; endpoint->ring.mtu = ep->mtu; endpoint->ring.flags = UHCI_FL_CERR_MAX; - if ( usb->port->speed < USB_SPEED_FULL ) + if ( usb->speed < USB_SPEED_FULL ) endpoint->ring.flags |= UHCI_FL_LS; endpoint->ring.control = ( UHCI_CONTROL_DEVICE ( usb->address ) | UHCI_CONTROL_ENDPOINT ( ep->address ) ); |