|
@@ -1019,6 +1019,38 @@ static void dwc3_get_properties(struct dwc3 *dwc)
|
|
|
|
|
|
}
|
|
|
|
|
|
+static void dwc3_check_params(struct dwc3 *dwc)
|
|
|
+{
|
|
|
+ struct device *dev = dwc->dev;
|
|
|
+
|
|
|
+ /* Check the maximum_speed parameter */
|
|
|
+ switch (dwc->maximum_speed) {
|
|
|
+ case USB_SPEED_LOW:
|
|
|
+ case USB_SPEED_FULL:
|
|
|
+ case USB_SPEED_HIGH:
|
|
|
+ case USB_SPEED_SUPER:
|
|
|
+ case USB_SPEED_SUPER_PLUS:
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ dev_err(dev, "invalid maximum_speed parameter %d\n",
|
|
|
+ dwc->maximum_speed);
|
|
|
+ /* fall through */
|
|
|
+ case USB_SPEED_UNKNOWN:
|
|
|
+ /* default to superspeed */
|
|
|
+ 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;
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static int dwc3_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct device *dev = &pdev->dev;
|
|
@@ -1110,32 +1142,7 @@ static int dwc3_probe(struct platform_device *pdev)
|
|
|
goto err4;
|
|
|
}
|
|
|
|
|
|
- /* Check the maximum_speed parameter */
|
|
|
- switch (dwc->maximum_speed) {
|
|
|
- case USB_SPEED_LOW:
|
|
|
- case USB_SPEED_FULL:
|
|
|
- case USB_SPEED_HIGH:
|
|
|
- case USB_SPEED_SUPER:
|
|
|
- case USB_SPEED_SUPER_PLUS:
|
|
|
- break;
|
|
|
- default:
|
|
|
- dev_err(dev, "invalid maximum_speed parameter %d\n",
|
|
|
- dwc->maximum_speed);
|
|
|
- /* fall through */
|
|
|
- case USB_SPEED_UNKNOWN:
|
|
|
- /* default to superspeed */
|
|
|
- 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;
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
+ dwc3_check_params(dwc);
|
|
|
|
|
|
ret = dwc3_core_init_mode(dwc);
|
|
|
if (ret)
|