diff options
author | Michael Brown <mcb30@ipxe.org> | 2015-06-18 15:09:57 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2015-06-18 15:09:57 +0100 |
commit | be3517c4ab4af8de973014e7e371a1c54dce8abf (patch) | |
tree | 0a956653685ebb3048b54be0aec69da94089f087 /src/drivers/usb/xhci.h | |
parent | 323bf186fb9e0a273df23b5f803e1a0292527aad (diff) | |
download | ipxe-be3517c4ab4af8de973014e7e371a1c54dce8abf.tar.gz |
[xhci] Ignore invalid protocol speed ID values on Intel Skylake platforms
Some Intel Skylake platforms (observed on a prototype Lenovo ThinkPad)
report the list of available USB3 protocol speed ID values as {1,2,3}
but then report a port's speed using ID value 4.
The value 4 happens to be the default value for SuperSpeed (when no
protocol speed ID value list is explicitly defined), and the hardware
seems to function correctly if we simply ignore its protocol speed ID
table and assume that it uses the default values.
Fix by adding a "broken PSI values" quirk for this controller.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/usb/xhci.h')
-rw-r--r-- | src/drivers/usb/xhci.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/drivers/usb/xhci.h b/src/drivers/usb/xhci.h index e35ef514..83bf71e7 100644 --- a/src/drivers/usb/xhci.h +++ b/src/drivers/usb/xhci.h @@ -1032,6 +1032,9 @@ struct xhci_pch { /** Intel PCH USB3 port routing mask register */ #define XHCI_PCH_USB3PRM 0xdc +/** Invalid protocol speed ID values quirk */ +#define XHCI_BAD_PSIV 0x0002 + /** An xHCI device */ struct xhci_device { /** Registers */ |