Make the special d3cold paths completely separate from the rest of the
runtime pm calls.

The intel_dmc_wl_flush_release_work() call right after
xe_display_pm_suspend_late() might be completely redundant, but this
avoids any functional changes.

Wiggle the comment while at it. It gets duplicated for now, but this
will be addressed in the follow-up.

v2: Update comments

Cc: Rodrigo Vivi <[email protected]>
Acked-by: Ville Syrjälä <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/xe/display/xe_display.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_display.c 
b/drivers/gpu/drm/xe/display/xe_display.c
index 493e9e09b6c9..bdafc010fae1 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -389,14 +389,14 @@ void xe_display_pm_runtime_suspend_late(struct xe_device 
*xe)
        if (!xe->info.probe_display)
                return;
 
-       if (xe->d3cold.allowed)
+       if (xe->d3cold.allowed) {
                xe_display_pm_suspend_late(xe);
+               /* Ensure the wakelock release work gets flushed */
+               intel_dmc_wl_flush_release_work(display);
+               return;
+       }
 
-       /*
-        * If xe_display_pm_suspend_late() is not called, it is likely
-        * that we will be on dynamic DC states with DMC wakelock enabled. We
-        * need to flush the release work in that case.
-        */
+       /* Ensure the wakelock release work gets flushed */
        intel_dmc_wl_flush_release_work(display);
 }
 
-- 
2.47.3

Reply via email to