[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191228203358.23490-12-digetx@gmail.com>
Date: Sat, 28 Dec 2019 23:33:53 +0300
From: Dmitry Osipenko <digetx@...il.com>
To: Rob Herring <robh+dt@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Peter Chen <Peter.Chen@....com>,
Thierry Reding <thierry.reding@...il.com>,
Jonathan Hunter <jonathanh@...dia.com>,
Felipe Balbi <balbi@...nel.org>
Cc: devicetree@...r.kernel.org, linux-usb@...r.kernel.org,
linux-tegra@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH v3 11/16] usb: phy: tegra: Disable VBUS regulator on tegra_usb_phy_init failure
VBUS regulator should be turned off in a case of error.
Signed-off-by: Dmitry Osipenko <digetx@...il.com>
---
drivers/usb/phy/phy-tegra-usb.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c
index cc6cca4dcecb..f7e7df812f83 100644
--- a/drivers/usb/phy/phy-tegra-usb.c
+++ b/drivers/usb/phy/phy-tegra-usb.c
@@ -851,14 +851,14 @@ static int tegra_usb_phy_init(struct usb_phy *u_phy)
dev_err(phy->u_phy.dev, "Invalid pll_u parent rate %ld\n",
parent_rate);
err = -EINVAL;
- goto fail;
+ goto disable_clk;
}
err = regulator_enable(phy->vbus);
if (err) {
dev_err(phy->u_phy.dev,
"Failed to enable USB VBUS regulator: %d\n", err);
- goto fail;
+ goto disable_clk;
}
if (phy->is_ulpi_phy)
@@ -866,7 +866,7 @@ static int tegra_usb_phy_init(struct usb_phy *u_phy)
else
err = utmip_pad_open(phy);
if (err)
- goto fail;
+ goto disable_vbus;
err = tegra_usb_phy_power_on(phy);
if (err)
@@ -879,7 +879,11 @@ static int tegra_usb_phy_init(struct usb_phy *u_phy)
ulpi_close(phy);
else
utmip_pad_close(phy);
-fail:
+
+disable_vbus:
+ regulator_disable(phy->vbus);
+
+disable_clk:
clk_disable_unprepare(phy->pll_u);
phy->freq = NULL;
--
2.24.0
Powered by blists - more mailing lists