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

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915: Reuse intel_mode_vblank_start()

Replace a few hand rolled copies of intel_mode_vblank_start() with
the real thing.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240528185647.7765-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>

+9 -13
+3 -7
drivers/gpu/drm/i915/display/intel_dsb.c
··· 328 328 unsigned int latency = skl_watermark_max_latency(i915, 0); 329 329 int vblank_start; 330 330 331 - if (crtc_state->vrr.enable) { 331 + if (crtc_state->vrr.enable) 332 332 vblank_start = intel_vrr_vmin_vblank_start(crtc_state); 333 - } else { 334 - vblank_start = adjusted_mode->crtc_vblank_start; 335 - 336 - if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) 337 - vblank_start = DIV_ROUND_UP(vblank_start, 2); 338 - } 333 + else 334 + vblank_start = intel_mode_vblank_start(adjusted_mode); 339 335 340 336 return max(0, vblank_start - intel_usecs_to_scanlines(adjusted_mode, latency)); 341 337 }
+3 -6
drivers/gpu/drm/i915/display/intel_vblank.c
··· 89 89 90 90 htotal = mode->crtc_htotal; 91 91 hsync_start = mode->crtc_hsync_start; 92 - vbl_start = mode->crtc_vblank_start; 93 - if (mode->flags & DRM_MODE_FLAG_INTERLACE) 94 - vbl_start = DIV_ROUND_UP(vbl_start, 2); 92 + vbl_start = intel_mode_vblank_start(mode); 95 93 96 94 /* Convert to pixel count */ 97 95 vbl_start *= htotal; ··· 311 313 htotal = mode->crtc_htotal; 312 314 hsync_start = mode->crtc_hsync_start; 313 315 vtotal = mode->crtc_vtotal; 314 - vbl_start = mode->crtc_vblank_start; 316 + vbl_start = intel_mode_vblank_start(mode); 315 317 vbl_end = mode->crtc_vblank_end; 316 318 317 319 if (mode->flags & DRM_MODE_FLAG_INTERLACE) { 318 - vbl_start = DIV_ROUND_UP(vbl_start, 2); 319 320 vbl_end /= 2; 320 321 vtotal /= 2; 321 322 } ··· 574 577 spin_unlock_irqrestore(&i915->drm.vblank_time_lock, irqflags); 575 578 } 576 579 577 - static int intel_mode_vblank_start(const struct drm_display_mode *mode) 580 + int intel_mode_vblank_start(const struct drm_display_mode *mode) 578 581 { 579 582 int vblank_start = mode->crtc_vblank_start; 580 583
+3
drivers/gpu/drm/i915/display/intel_vblank.h
··· 10 10 #include <linux/types.h> 11 11 12 12 struct drm_crtc; 13 + struct drm_display_mode; 13 14 struct intel_crtc; 14 15 struct intel_crtc_state; 15 16 ··· 19 18 int min, max, vblank_start; 20 19 bool need_vlv_dsi_wa; 21 20 }; 21 + 22 + int intel_mode_vblank_start(const struct drm_display_mode *mode); 22 23 23 24 void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state, 24 25 const struct intel_crtc_state *new_crtc_state,