12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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
- @@ -962,10 +962,6 @@ static int dwc3_probe(struct platform_de
- 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;
-
- @@ -1016,6 +1012,19 @@ static int dwc3_probe(struct platform_de
- 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);
-
|