[PATCH] phy: qcom: m31: propagate reset errors
From: Pengpeng Hou
Date: Sun Aug 30 2026 - 09:15:00 EST
m31usb_phy_init() enables the regulator and clock, then performs an
unchecked
reset pulse before reporting that the PHY powered on.
Return reset-controller errors and release the clock and regulator that
were
enabled for the failed power-on attempt.
Fixes: 08e49af50701 ("phy: qcom: Introduce M31 USB PHY driver")
Signed-off-by: Pengpeng Hou <pengpeng@xxxxxxxxxxx>
---
drivers/phy/qualcomm/phy-qcom-m31.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-m31.c b/drivers/phy/qualcomm/phy-qcom-m31.c
index 168ea980fda03..f46c7ec87496a 100644
--- a/drivers/phy/qualcomm/phy-qcom-m31.c
+++ b/drivers/phy/qualcomm/phy-qcom-m31.c
@@ -228,9 +228,14 @@ static int m31usb_phy_init(struct phy *phy)
}
/* Perform phy reset */
- reset_control_assert(qphy->reset);
+ ret = reset_control_assert(qphy->reset);
+ if (ret)
+ goto disable_clk;
+
udelay(5);
- reset_control_deassert(qphy->reset);
+ ret = reset_control_deassert(qphy->reset);
+ if (ret)
+ goto disable_clk;
/* configure for ULPI mode if requested */
if (qphy->ulpi_mode)
@@ -247,6 +252,12 @@ static int m31usb_phy_init(struct phy *phy)
}
return 0;
+
+disable_clk:
+ clk_disable_unprepare(qphy->clk);
+ regulator_disable(qphy->vreg);
+
+ return ret;
}
static int m31usb_phy_shutdown(struct phy *phy)
base-commit: 08dbfad3f5040f5bdb6c529da20d6d4e81fefd72
--
2.50.1