[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)