[PATCH] drm/msm/dp: Propagate core clock enable error in runtime resume
Jessica Zhang
jessica.zhang at oss.qualcomm.com
Fri Jul 18 22:15:51 UTC 2025
Currently, runtime resume will always return success even if the core
clock enable fails.
Propagate any core clock enable errors during the resume to avoid any
crashes later.
Signed-off-by: Jessica Zhang <jessica.zhang at oss.qualcomm.com>
---
drivers/gpu/drm/msm/dp/dp_display.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index d87d47cc7ec3..77d5e89239d2 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -463,17 +463,24 @@ static void msm_dp_display_host_phy_exit(struct msm_dp_display_private *dp)
}
}
-static void msm_dp_display_host_init(struct msm_dp_display_private *dp)
+static int msm_dp_display_host_init(struct msm_dp_display_private *dp)
{
+ int rc;
+
drm_dbg_dp(dp->drm_dev, "type=%d core_init=%d phy_init=%d\n",
dp->msm_dp_display.connector_type, dp->core_initialized,
dp->phy_initialized);
- msm_dp_ctrl_core_clk_enable(dp->ctrl);
+ rc = msm_dp_ctrl_core_clk_enable(dp->ctrl);
+ if (rc)
+ return rc;
+
msm_dp_ctrl_reset(dp->ctrl);
msm_dp_ctrl_enable_irq(dp->ctrl);
msm_dp_aux_init(dp->aux);
dp->core_initialized = true;
+
+ return 0;
}
static void msm_dp_display_host_deinit(struct msm_dp_display_private *dp)
@@ -1453,6 +1460,7 @@ static int msm_dp_pm_runtime_suspend(struct device *dev)
static int msm_dp_pm_runtime_resume(struct device *dev)
{
struct msm_dp_display_private *dp = dev_get_dp_display_private(dev);
+ int rc;
/*
* for eDP, host cotroller, HPD block and PHY are enabled here
@@ -1462,14 +1470,14 @@ static int msm_dp_pm_runtime_resume(struct device *dev)
* HPD block is enabled at msm_dp_bridge_hpd_enable()
* PHY will be enabled at plugin handler later
*/
- msm_dp_display_host_init(dp);
+ rc = msm_dp_display_host_init(dp);
if (dp->msm_dp_display.is_edp) {
msm_dp_aux_hpd_enable(dp->aux);
msm_dp_display_host_phy_init(dp);
}
enable_irq(dp->irq);
- return 0;
+ return rc;
}
static const struct dev_pm_ops msm_dp_pm_ops = {
---
base-commit: d086c886ceb9f59dea6c3a9dae7eb89e780a20c9
change-id: 20250703-dp-clk-error-7c1965066541
Best regards,
--
Jessica Zhang <jessica.zhang at oss.qualcomm.com>
More information about the dri-devel
mailing list