2016-11-12 11:35:56 +00:00
|
|
|
From 2c7f1bd9127a1a49ee25d9c2b2ce17b11c7fb05f Mon Sep 17 00:00:00 2001
|
|
|
|
From: John Youn <John.Youn@synopsys.com>
|
|
|
|
Date: Fri, 5 Feb 2016 17:08:59 -0800
|
|
|
|
Subject: usb: dwc3: Update maximum_speed for SuperSpeedPlus
|
|
|
|
|
|
|
|
If the maximum_speed is not set, set it to a known value, either
|
|
|
|
SuperSpeed or SuperSpeedPlus based on the type of controller we are
|
|
|
|
using. If we are on DWC_usb31 controller, check the PHY interface to see
|
|
|
|
if it is capable of SuperSpeedPlus.
|
|
|
|
|
|
|
|
Also this check is moved after dwc3_core_init() so that we can check
|
|
|
|
dwc->revision.
|
|
|
|
|
|
|
|
Signed-off-by: John Youn <johnyoun@synopsys.com>
|
|
|
|
Signed-off-by: Felipe Balbi <balbi@kernel.org>
|
|
|
|
---
|
|
|
|
drivers/usb/dwc3/core.c | 17 +++++++++++++----
|
|
|
|
1 file changed, 13 insertions(+), 4 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/usb/dwc3/core.c
|
|
|
|
+++ b/drivers/usb/dwc3/core.c
|
2016-11-21 18:18:47 +00:00
|
|
|
@@ -962,10 +962,6 @@ static int dwc3_probe(struct platform_de
|
2016-11-12 11:35:56 +00:00
|
|
|
fladj = pdata->fladj_value;
|
|
|
|
}
|
|
|
|
|
|
|
|
- /* default to superspeed if no maximum_speed passed */
|
|
|
|
- if (dwc->maximum_speed == USB_SPEED_UNKNOWN)
|
|
|
|
- dwc->maximum_speed = USB_SPEED_SUPER;
|
|
|
|
-
|
|
|
|
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
|
|
|
dwc->tx_de_emphasis = tx_de_emphasis;
|
|
|
|
|
2016-11-21 18:18:47 +00:00
|
|
|
@@ -1016,6 +1012,19 @@ static int dwc3_probe(struct platform_de
|
2016-11-12 11:35:56 +00:00
|
|
|
goto err1;
|
|
|
|
}
|
|
|
|
|
|
|
|
+ /* default to superspeed if no maximum_speed passed */
|
|
|
|
+ if (dwc->maximum_speed == USB_SPEED_UNKNOWN) {
|
|
|
|
+ dwc->maximum_speed = USB_SPEED_SUPER;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * default to superspeed plus if we are capable.
|
|
|
|
+ */
|
|
|
|
+ if (dwc3_is_usb31(dwc) &&
|
|
|
|
+ (DWC3_GHWPARAMS3_SSPHY_IFC(dwc->hwparams.hwparams3) ==
|
|
|
|
+ DWC3_GHWPARAMS3_SSPHY_IFC_GEN2))
|
|
|
|
+ dwc->maximum_speed = USB_SPEED_SUPER_PLUS;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
/* Adjust Frame Length */
|
|
|
|
dwc3_frame_length_adjustment(dwc, fladj);
|
|
|
|
|