summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Vivi <rodrigo.vivi@intel.com>2025-02-12 14:24:47 -0500
committerRodrigo Vivi <rodrigo.vivi@intel.com>2025-02-13 17:45:43 -0500
commit1ed591582b7b894d2f7e7ab5cef2e9b0b6fef12b (patch)
tree62bb07fea474bd888ad6d9531534670406659ff9
parentb7446752e5d3de98bf26b5d3a7ca4fe9165ec779 (diff)
drm/xe/display: Remove hpd cancel work sync from runtime pm path
This function will synchronously cancel and wait for many display work queue items, which might try to take the runtime pm reference causing a bad deadlock. So, remove it from the runtime_pm suspend patch. Reported-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250212192447.402715-1-rodrigo.vivi@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
-rw-r--r--drivers/gpu/drm/xe/display/xe_display.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 376c36ca06db..e144d8c0a123 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -312,7 +312,8 @@ static void __xe_display_pm_suspend(struct xe_device *xe, bool runtime)
xe_display_flush_cleanup_work(xe);
- intel_hpd_cancel_work(xe);
+ if (!runtime)
+ intel_hpd_cancel_work(xe);
if (!runtime && has_display(xe)) {
intel_display_driver_suspend_access(display);