|
@@ -4805,7 +4805,8 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
|
|
*/
|
|
*/
|
|
|
hcd->has_tt = 1;
|
|
hcd->has_tt = 1;
|
|
|
} else {
|
|
} else {
|
|
|
- if (xhci->sbrn == 0x31) {
|
|
|
|
|
|
|
+ /* Some 3.1 hosts return sbrn 0x30, can't rely on sbrn alone */
|
|
|
|
|
+ if (xhci->sbrn == 0x31 || xhci->usb3_rhub.min_rev >= 1) {
|
|
|
xhci_info(xhci, "Host supports USB 3.1 Enhanced SuperSpeed\n");
|
|
xhci_info(xhci, "Host supports USB 3.1 Enhanced SuperSpeed\n");
|
|
|
hcd->speed = HCD_USB31;
|
|
hcd->speed = HCD_USB31;
|
|
|
hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
|
|
hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
|