Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915: Extract intel_mode_vblank_delay()

Extract the code that computes the hardware centric view
of the vblank delay into a helper. We'll need a slightly
different variant for VRR soon.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241210211007.5976-10-ville.syrjala@linux.intel.com
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

+8 -4
+1 -2
drivers/gpu/drm/i915/display/intel_dsb.c
··· 130 130 131 131 static int dsb_vblank_delay(const struct intel_crtc_state *crtc_state) 132 132 { 133 - return intel_mode_vblank_start(&crtc_state->hw.adjusted_mode) - 134 - intel_mode_vdisplay(&crtc_state->hw.adjusted_mode); 133 + return intel_mode_vblank_delay(&crtc_state->hw.adjusted_mode); 135 134 } 136 135 137 136 static int dsb_vtotal(struct intel_atomic_state *state,
+6 -2
drivers/gpu/drm/i915/display/intel_vblank.c
··· 597 597 return vtotal; 598 598 } 599 599 600 + int intel_mode_vblank_delay(const struct drm_display_mode *mode) 601 + { 602 + return intel_mode_vblank_start(mode) - intel_mode_vdisplay(mode); 603 + } 604 + 600 605 void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state, 601 606 const struct intel_crtc_state *new_crtc_state, 602 607 struct intel_vblank_evade_ctx *evade) ··· 658 653 */ 659 654 if (intel_color_uses_dsb(new_crtc_state) || 660 655 new_crtc_state->update_m_n || new_crtc_state->update_lrr) 661 - evade->min -= intel_mode_vblank_start(adjusted_mode) - 662 - intel_mode_vdisplay(adjusted_mode); 656 + evade->min -= intel_mode_vblank_delay(adjusted_mode); 663 657 } 664 658 665 659 /* must be called with vblank interrupt already enabled! */
+1
drivers/gpu/drm/i915/display/intel_vblank.h
··· 24 24 int intel_mode_vblank_start(const struct drm_display_mode *mode); 25 25 int intel_mode_vblank_end(const struct drm_display_mode *mode); 26 26 int intel_mode_vtotal(const struct drm_display_mode *mode); 27 + int intel_mode_vblank_delay(const struct drm_display_mode *mode); 27 28 28 29 void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state, 29 30 const struct intel_crtc_state *new_crtc_state,