diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c index e2b4ed027a75..66b36f65a5b5 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -886,8 +886,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) goto unlock; ret = property_enable(base, &rport->port_cfg->phy_sus, false); - if (ret) - goto disable_clks; + if (ret) { + clk_disable_unprepare(rphy->clk480m); + goto unlock; + } /* * For rk3588, it needs to reset phy when exit from @@ -900,8 +902,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) if (rport->port_id == USB2PHY_PORT_OTG && of_device_is_compatible(rphy->dev->of_node, "rockchip,rk3588-usb2phy")) { ret = rockchip_usb2phy_reset(rphy); - if (ret) - goto disable_clks; + if (ret) { + clk_disable_unprepare(rphy->clk480m); + goto unlock; + } } /* waiting for the utmi_clk to become stable */ @@ -909,9 +913,6 @@ static int rockchip_usb2phy_power_on(struct phy *phy) rport->suspended = false; -disable_clks: - clk_disable_unprepare(rphy->clk480m); - unlock: mutex_unlock(&rport->mutex);