On 24/03/2020 15:33, Martin Blumenstingl wrote: > Hi Neil, > > On Tue, Mar 24, 2020 at 11:20 AM Neil Armstrong <narmstrong@xxxxxxxxxxxx> wrote: > [...] >> @@ -195,23 +239,9 @@ static int dwc3_meson_g12a_usb2_init(struct dwc3_meson_g12a *priv) >> if (!strstr(priv->drvdata->phy_names[i], "usb2")) >> continue; >> >> - regmap_update_bits(priv->u2p_regmap[i], U2P_R0, >> - U2P_R0_POWER_ON_RESET, >> - U2P_R0_POWER_ON_RESET); >> - >> - if (priv->drvdata->otg_switch_supported && i == USB2_OTG_PHY) { >> - regmap_update_bits(priv->u2p_regmap[i], U2P_R0, >> - U2P_R0_ID_PULLUP | U2P_R0_DRV_VBUS, >> - U2P_R0_ID_PULLUP | U2P_R0_DRV_VBUS); >> - >> - dwc3_meson_g12a_usb2_set_mode(priv, i, >> - priv->otg_phy_mode); >> - } else >> - dwc3_meson_g12a_usb2_set_mode(priv, i, >> - PHY_MODE_USB_HOST); >> - >> - regmap_update_bits(priv->u2p_regmap[i], U2P_R0, >> - U2P_R0_POWER_ON_RESET, 0); >> + ret = priv->drvdata->usb2_init_phy(priv, i, mode); >> + if (ret) >> + return ret; >> } > this doesn't compile for me, it complains that mode is undefined > I believe we need something like the attached patch on top. I'll investigate > > [...] >> @@ -580,7 +612,9 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev) >> /* Get dr_mode */ >> priv->otg_mode = usb_get_dr_mode(dev); >> >> - dwc3_meson_g12a_usb_init(priv); >> + ret = dwc3_meson_g12a_usb_init(priv); >> + if (ret) >> + goto err_disable_clks; > this looks like an unrelated fix, dwc3_meson_g12a_usb_init has always > returned int (as potential error) > also the same check is missing in dwc3_meson_g12a_resume > can you please move this to a separate patch with the appropriate tag: > Fixes: c99993376f72ca ("usb: dwc3: Add Amlogic G12A DWC3 glue") Ok Thanks, Neil > > > Martin >