All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] drm/msm/dpu: handle pm_runtime_get_sync() errors in bind path
@ 2022-05-18 22:34 Abhinav Kumar
  2022-05-19  0:31 ` Rob Clark
  2022-05-19  0:40 ` Stephen Boyd
  0 siblings, 2 replies; 4+ messages in thread
From: Abhinav Kumar @ 2022-05-18 22:34 UTC (permalink / raw)
  To: freedreno
  Cc: Abhinav Kumar, dri-devel, swboyd, seanpaul, dmitry.baryshkov,
	quic_jesszhan, quic_aravindh, quic_khsieh

If there are errors while trying to enable the pm in the
bind path, it will lead to unclocked access of hw revision
register thereby crashing the device.

This will not address why the pm_runtime_get_sync() fails
but at the very least we should be able to prevent the
crash by handling the error and bailing out earlier.

changes in v2:
	- use pm_runtime_resume_and_get() instead of
	  pm_runtime_get_sync()

Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 2b9d931474e0..bce47647d891 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -1089,7 +1089,9 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 
 	dpu_kms_parse_data_bus_icc_path(dpu_kms);
 
-	pm_runtime_get_sync(&dpu_kms->pdev->dev);
+	rc = pm_runtime_resume_and_get(&dpu_kms->pdev->dev);
+	if (rc < 0)
+		goto error;
 
 	dpu_kms->core_rev = readl_relaxed(dpu_kms->mmio + 0x0);
 
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-05-19  1:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18 22:34 [PATCH v2] drm/msm/dpu: handle pm_runtime_get_sync() errors in bind path Abhinav Kumar
2022-05-19  0:31 ` Rob Clark
2022-05-19  0:40 ` Stephen Boyd
2022-05-19  1:26   ` [Freedreno] " Abhinav Kumar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.