We are currently observing crc failures after we started using dsb for PSR
updates as well. This seems to happen because PSR HW is still sending
couple of updates using old framebuffers on wake-up.

Fix this by adding poll ensuring PSR is idle before starting update.

Signed-off-by: Jouni Högander <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 7035c1fc9033..826efc1aea46 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7265,6 +7265,8 @@ static void intel_atomic_dsb_finish(struct 
intel_atomic_state *state,
                intel_psr_trigger_frame_change_event(new_crtc_state->dsb_commit,
                                                     state, crtc);
 
+               intel_psr_wait_for_idle_dsb(new_crtc_state);
+
                if (new_crtc_state->use_dsb)
                        intel_dsb_vblank_evade(state, 
new_crtc_state->dsb_commit);
 
-- 
2.43.0

Reply via email to