We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent DC6 in case of Panel Replay. This causes problems if user-space is polling for vblank events. v4: - do flush_work for vblank_work on intel_crtc_vblank_off - no need to use READ_ONCE in bdw_enable_vblank - check crtc->block_dc_for_vblank in bdw_disable_vblank as well - move adding block_dc_for_vblank into patch 2. - patch 1. scope changed v3: check that encoder is dp v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Jouni Högander (2): drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay drivers/gpu/drm/i915/display/intel_crtc.c | 7 +++++ .../gpu/drm/i915/display/intel_display_core.h | 2 ++ .../gpu/drm/i915/display/intel_display_irq.c | 27 ++++++++++++++++ .../drm/i915/display/intel_display_types.h | 2 ++ drivers/gpu/drm/i915/display/intel_psr.c | 31 +++++++++++++++++++ drivers/gpu/drm/i915/display/intel_psr.h | 1 + 6 files changed, 70 insertions(+) -- 2.34.1