summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Yongjun <weiyongjun1@huawei.com>2016-10-22 17:33:42 +0300
committerKishon Vijay Abraham I <kishon@ti.com>2016-11-18 15:49:14 +0300
commitf42bec197d7f6c8c079b62f22ac4857c1e43d28d (patch)
tree91370bd06b1cd68a2bd9a89716efcbb27f388e68
parent7965ba051e341e94af180efd08815e4254c1bc8c (diff)
downloadlinux-f42bec197d7f6c8c079b62f22ac4857c1e43d28d.tar.xz
phy: meson8b-usb2: fix missing clk_disable_unprepare() on error
Fix the missing clk_disable_unprepare() before return from phy_meson8b_usb2_power_on() in the error handling case. Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
-rw-r--r--drivers/phy/phy-meson8b-usb2.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/phy/phy-meson8b-usb2.c b/drivers/phy/phy-meson8b-usb2.c
index 73bf632683e2..dca394732ae3 100644
--- a/drivers/phy/phy-meson8b-usb2.c
+++ b/drivers/phy/phy-meson8b-usb2.c
@@ -158,6 +158,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy)
ret = clk_prepare_enable(priv->clk_usb);
if (ret) {
dev_err(&phy->dev, "Failed to enable USB DDR clock\n");
+ clk_disable_unprepare(priv->clk_usb_general);
return ret;
}
@@ -190,6 +191,8 @@ static int phy_meson8b_usb2_power_on(struct phy *phy)
if (phy_meson8b_usb2_read(priv, REG_ADP_BC) &
REG_ADP_BC_ACA_PIN_FLOAT) {
dev_warn(&phy->dev, "USB ID detect failed!\n");
+ clk_disable_unprepare(priv->clk_usb);
+ clk_disable_unprepare(priv->clk_usb_general);
return -EINVAL;
}
}