* [PATCH] drm/msm/dp: Propagate core clock enable error in runtime resume
@ 2025-07-18 22:15 Jessica Zhang
2025-07-18 22:48 ` Dmitry Baryshkov
0 siblings, 1 reply; 2+ messages in thread
From: Jessica Zhang @ 2025-07-18 22:15 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Sean Paul,
Marijn Suijten, David Airlie, Simona Vetter, Jessica Zhang
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, Sean Paul
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@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@oss.qualcomm.com>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/msm/dp: Propagate core clock enable error in runtime resume
2025-07-18 22:15 [PATCH] drm/msm/dp: Propagate core clock enable error in runtime resume Jessica Zhang
@ 2025-07-18 22:48 ` Dmitry Baryshkov
0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Baryshkov @ 2025-07-18 22:48 UTC (permalink / raw)
To: Jessica Zhang
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Sean Paul,
Marijn Suijten, David Airlie, Simona Vetter, linux-arm-msm,
dri-devel, freedreno, linux-kernel, Sean Paul
On Fri, Jul 18, 2025 at 03:15:51PM -0700, Jessica Zhang wrote:
> 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@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 (rc)
return rc;
> 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;
Keep 'return 0' here.
> }
>
> 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@oss.qualcomm.com>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-07-18 22:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-18 22:15 [PATCH] drm/msm/dp: Propagate core clock enable error in runtime resume Jessica Zhang
2025-07-18 22:48 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).