drm/i915/psr: Add poll for checking PSR is idle before starting update

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.

v2: pass new_crtc_state->dsb_commit to intel_psr_wait_for_idle_dsb

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/20250905072708.2659411-5-jouni.hogander@intel.com
This commit is contained in:
Jouni Högander
2025-09-05 10:27:08 +03:00
parent 11b0567ee6
commit 8bc70f2ea9

View File

@@ -7271,6 +7271,9 @@ 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->dsb_commit,
new_crtc_state);
if (new_crtc_state->use_dsb)
intel_dsb_vblank_evade(state, new_crtc_state->dsb_commit);