[PATCH v2 3/3] usb: musb: omap2430: report system-resume PHY setup failures

From: Pengpeng Hou

Date: Mon Sep 21 2026 - 20:45:47 EST


omap2430_resume() ignores PHY setup failures and always reports success.

Return the result of the ownership-aware PHY setup helper. End the
system-sleep deferral even on failure: leaving phy_suspended set would
make later runtime resumes skip the PHY permanently. The independent
reference flags still record which resources need cleanup or retry.

A later suspend or platform exit therefore releases only references
actually held, while a runtime resume can retry setup without adding a
second initialization reference left over from a failed cleanup.

The issue was found by our static-analysis tool.

Fixes: 68d9f95d6fd5 ("usb: musb: Fix suspend and resume issues for PHYs on I2C and SPI")
Assisted-by: gpt 5
Signed-off-by: Pengpeng Hou <hppiscas@xxxxxxx>
---
drivers/usb/musb/omap2430.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 382d6cd4a9e6..951e60906f2c 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -657,14 +657,16 @@ static int omap2430_resume(struct device *dev)
{
struct omap2430_glue *glue = dev_get_drvdata(dev);
struct musb *musb = glue_to_musb(glue);
+ int ret;

if (!musb)
return 0;

- omap2430_phy_power_on(glue);
+ ret = omap2430_phy_power_on(glue);
+ /* End system-sleep deferral so a later runtime resume can retry. */
glue->phy_suspended = 0;

- return 0;
+ return ret;
}

static const struct dev_pm_ops omap2430_pm_ops = {

base-commit: f0100363d8c374bd8e9ea7c9ba02744f0b802ca4
--
2.50.1 (Apple Git-155)