diff options
| author | Johan Hovold <johan+linaro@kernel.org> | 2025-05-23 10:48:34 +0200 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2025-06-15 22:02:41 +0530 |
| commit | 3232a6b0d834569f71aa898401288af6b4ab781d (patch) | |
| tree | a86b855f0147f4d25feec4f92ebfd408b1509ae5 /drivers/phy | |
| parent | 641fa5b515a6900b1452cc92d30d1ab391e04414 (diff) | |
phy: phy-snps-eusb2: fix repeater imbalance on phy_init() failure
Make sure to disable the repeater PHY also on phy_init() failure.
Fixes: 3584f6392f09 ("phy: qcom: phy-qcom-snps-eusb2: Add support for eUSB2 repeater")
Cc: Abel Vesa <abel.vesa@linaro.org>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20250523084839.11015-3-johan+linaro@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/phy')
| -rw-r--r-- | drivers/phy/phy-snps-eusb2.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c index 19af3f99692c..a799c3d2bcfb 100644 --- a/drivers/phy/phy-snps-eusb2.c +++ b/drivers/phy/phy-snps-eusb2.c @@ -468,7 +468,7 @@ static int snps_eusb2_hsphy_init(struct phy *p) ret = clk_bulk_prepare_enable(phy->data->num_clks, phy->clks); if (ret) { dev_err(&p->dev, "failed to enable ref clock, %d\n", ret); - goto disable_vreg; + goto exit_repeater; } ret = reset_control_assert(phy->phy_reset); @@ -493,7 +493,8 @@ static int snps_eusb2_hsphy_init(struct phy *p) disable_ref_clk: clk_bulk_disable_unprepare(phy->data->num_clks, phy->clks); - +exit_repeater: + phy_exit(phy->repeater); disable_vreg: regulator_bulk_disable(ARRAY_SIZE(phy->vregs), phy->vregs); |
