Linux USB
 help / color / mirror / Atom feed
* [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