From 640eb99d42cfa513af5c088e71a9cdea15978bc4 Mon Sep 17 00:00:00 2001 From: Frank Wang Date: Wed, 24 May 2023 10:13:22 +0800 Subject: [PATCH] phy: rockchip: inno-usb2: only disable usb480m clk in error path This fix the usb480m clk disable error when phy power on. Fixes: daf27963218f ("Merge commit '52f971ee6e023d89d24f9e3cd145d86d707e459c'") Signed-off-by: Frank Wang Change-Id: I79f84757cccdca56357794d3bb5bfdc8df6c0a1f --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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);