diff options
author | Michael Brown <mcb30@ipxe.org> | 2015-12-07 00:54:01 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2015-12-07 13:16:47 +0000 |
commit | 53ba5936b5c70b030d81e8f2349d75a7264581ae (patch) | |
tree | 10c75d777eacc264aedbe6f5a0136ea637c8b44c /src/drivers/usb/usbhub.h | |
parent | fb8c52de9b50d3562ce08469f23bbd221946519d (diff) | |
download | ipxe-53ba5936b5c70b030d81e8f2349d75a7264581ae.tar.gz |
[usb] Allow additional settling time for out-of-spec hubs
Some hubs (e.g. the Avocent Corp. Virtual Hub on a Lenovo x3550
Integrated Management Module) have been observed to require more than
the standard 200ms for ports to stabilise, with the result that
devices appear to disconnect and immediately reconnect during the
initial bus enumeration.
Work around this problem by allowing specific hubs an extra 500ms of
settling time.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/usb/usbhub.h')
-rw-r--r-- | src/drivers/usb/usbhub.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/drivers/usb/usbhub.h b/src/drivers/usb/usbhub.h index d7d8f9610..a5f123acc 100644 --- a/src/drivers/usb/usbhub.h +++ b/src/drivers/usb/usbhub.h @@ -257,6 +257,8 @@ struct usb_hub_device { struct usb_hub *hub; /** Features */ unsigned int features; + /** Flags */ + unsigned int flags; /** Interrupt endpoint */ struct usb_endpoint intr; @@ -264,6 +266,12 @@ struct usb_hub_device { struct process refill; }; +/** Hub requires additional settling delay */ +#define USB_HUB_SLOW_START 0x0001 + +/** Additional setting delay for out-of-spec hubs */ +#define USB_HUB_SLOW_START_DELAY_MS 500 + /** Interrupt ring fill level * * This is a policy decision. |