This patch series refactors VRR and DSB timing logic by introducing
explicit handling of Set Context Latency (SCL) the number of lines required
before double buffering to safely program display registers, aka W2 Window.
Previously, SCL was handled implicitly via vblank delay calculations. This
was a hinderance for later work to optimize guardband length. This series
formalizes SCL as `set_context_latency` in `intel_crtc_state`, enabling
consistent tracking and timing/delay computation across platforms.
- Introduces `set_context_latency` to track SCL explicitly.
- Refactors VRR evasion and DSB wait logic to use SCL directly.
- Clamps guardband values based on hardware limits and timing constraints.
- Renames helpers for clarity and removes legacy delay logic.
Rev2: Address comments from Ville:
- Handle SCL for TGL better and meld patch with previous patch.
- Drop patch to use set context latency in evasion logic.
- Add patch to introduce REG_FIELD_MAX based on FIELD_MAX.
- Added new helper to wait for SCL start and end lines.
- Other minor refactoring suggested in comments.
Ankit Nautiyal (9):
drm/i915/psr:
s/intel_psr_min_vblank_delay/intel_psr_min_set_context_latency
drm/i915/display: Add set_context_latency to crtc_state
drm/i915/vrr: Use set_context_latency instead of
intel_vrr_real_vblank_delay()
drm/i915/vrr: Use SCL for computing guardband
drm/i915/vrr: s/intel_vrr_vblank_delay/intel_vrr_scl_delay
drm/i915/dsb:
s/intel_dsb_wait_vblank_delay/intel_dsb_wait_for_delayed_vblank
drm/i915/display: Wait for scl start instead of dsb_wait_vblanks
drm/i915/reg_defs: Add REG_FIELD_MAX wrapper for FIELD_MAX()
drm/i915/vrr: Clamp guardband as per hardware and timing constraints
drivers/gpu/drm/i915/display/intel_color.c | 2 +-
.../drm/i915/display/intel_crtc_state_dump.c | 5 +-
drivers/gpu/drm/i915/display/intel_display.c | 55 ++++++++-----
.../drm/i915/display/intel_display_types.h | 3 +
drivers/gpu/drm/i915/display/intel_dsb.c | 26 ++++++-
drivers/gpu/drm/i915/display/intel_dsb.h | 4 +-
drivers/gpu/drm/i915/display/intel_psr.c | 6 +-
drivers/gpu/drm/i915/display/intel_psr.h | 2 +-
drivers/gpu/drm/i915/display/intel_vblank.c | 2 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 77 +++++++++++++------
drivers/gpu/drm/i915/display/intel_vrr.h | 4 +-
drivers/gpu/drm/i915/i915_reg_defs.h | 10 +++
12 files changed, 140 insertions(+), 56 deletions(-)
--
2.45.2