* [PATCH] phy: sunplus: fix error handling in sp_uphy_init()
@ 2026-08-03 15:15 Felix Gu
2026-08-03 15:22 ` Philipp Zabel
2026-08-06 16:26 ` Vinod Koul
0 siblings, 2 replies; 3+ messages in thread
From: Felix Gu @ 2026-08-03 15:15 UTC (permalink / raw)
To: Vincent Shih, Vinod Koul, Neil Armstrong, Philipp Zabel
Cc: linux-usb, linux-phy, linux-kernel, Felix Gu
Fix the error paths of sp_uphy_init() to undo exactly what each stage
did: return directly if clk_prepare_enable() fails, release only the clock
if reset_control_deassert() fails, and jump to err_reset if
update_disc_vol() fails so the clock and reset are not leaked.
Fixes: 99d9ccd97385 ("phy: usb: Add USB2.0 phy driver for Sunplus SP7021")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
drivers/phy/sunplus/phy-sunplus-usb2.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/phy/sunplus/phy-sunplus-usb2.c b/drivers/phy/sunplus/phy-sunplus-usb2.c
index 637a5fbae6d9..0ad4c7160d17 100644
--- a/drivers/phy/sunplus/phy-sunplus-usb2.c
+++ b/drivers/phy/sunplus/phy-sunplus-usb2.c
@@ -116,11 +116,11 @@ static int sp_uphy_init(struct phy *phy)
ret = clk_prepare_enable(usbphy->phy_clk);
if (ret)
- goto err_clk;
+ return ret;
ret = reset_control_deassert(usbphy->rstc);
if (ret)
- goto err_reset;
+ goto err_clk;
/* Default value modification */
writel(HIGH_MASK_BITS | 0x4002, usbphy->moon4_regs + UPHY_CONTROL0);
@@ -129,7 +129,7 @@ static int sp_uphy_init(struct phy *phy)
/* disconnect voltage */
ret = update_disc_vol(usbphy);
if (ret < 0)
- return ret;
+ goto err_reset;
/* board uphy 0 internal register modification for tid certification */
val = readl(usbphy->phy_regs + CONFIG9);
---
base-commit: 415606a7be939835db9b0d6b711887586646346d
change-id: 20260803-sunplus-usb3-ba6c829bc063
Best regards,
--
Felix Gu <ustc.gu@gmail.com>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] phy: sunplus: fix error handling in sp_uphy_init()
2026-08-03 15:15 [PATCH] phy: sunplus: fix error handling in sp_uphy_init() Felix Gu
@ 2026-08-03 15:22 ` Philipp Zabel
2026-08-06 16:26 ` Vinod Koul
1 sibling, 0 replies; 3+ messages in thread
From: Philipp Zabel @ 2026-08-03 15:22 UTC (permalink / raw)
To: Felix Gu, Vincent Shih, Vinod Koul, Neil Armstrong
Cc: linux-usb, linux-phy, linux-kernel
On Mo, 2026-08-03 at 23:15 +0800, Felix Gu wrote:
> Fix the error paths of sp_uphy_init() to undo exactly what each stage
> did: return directly if clk_prepare_enable() fails, release only the clock
> if reset_control_deassert() fails, and jump to err_reset if
> update_disc_vol() fails so the clock and reset are not leaked.
>
> Fixes: 99d9ccd97385 ("phy: usb: Add USB2.0 phy driver for Sunplus SP7021")
> Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
regards
Philipp
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] phy: sunplus: fix error handling in sp_uphy_init()
2026-08-03 15:15 [PATCH] phy: sunplus: fix error handling in sp_uphy_init() Felix Gu
2026-08-03 15:22 ` Philipp Zabel
@ 2026-08-06 16:26 ` Vinod Koul
1 sibling, 0 replies; 3+ messages in thread
From: Vinod Koul @ 2026-08-06 16:26 UTC (permalink / raw)
To: Vincent Shih, Neil Armstrong, Philipp Zabel, Felix Gu
Cc: linux-usb, linux-phy, linux-kernel
On Mon, 03 Aug 2026 23:15:17 +0800, Felix Gu wrote:
> Fix the error paths of sp_uphy_init() to undo exactly what each stage
> did: return directly if clk_prepare_enable() fails, release only the clock
> if reset_control_deassert() fails, and jump to err_reset if
> update_disc_vol() fails so the clock and reset are not leaked.
>
>
Applied, thanks!
[1/1] phy: sunplus: fix error handling in sp_uphy_init()
commit: 8b2683bc4cc18c581b7cd24f227cbe61abca7f4d
Best regards,
--
~Vinod
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-06 16:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-03 15:15 [PATCH] phy: sunplus: fix error handling in sp_uphy_init() Felix Gu
2026-08-03 15:22 ` Philipp Zabel
2026-08-06 16:26 ` Vinod Koul
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox