Commit 047d9b28 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Extract intel_crtc_active_timings()



Declutter intel_crtc_update_active_timings() a bit by
moving the code that determines the timings into a separate
function.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241210211007.5976-12-ville.syrjala@linux.intel.com


Reviewed-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
parent a18bd2f3
Loading
Loading
Loading
Loading
+22 −11
Original line number Diff line number Diff line
@@ -507,6 +507,23 @@ void intel_wait_for_pipe_scanline_moving(struct intel_crtc *crtc)
	wait_for_pipe_scanline_moving(crtc, true);
}

static void intel_crtc_active_timings(struct drm_display_mode *mode,
				      int *vmax_vblank_start,
				      const struct intel_crtc_state *crtc_state,
				      bool vrr_enable)
{
	drm_mode_init(mode, &crtc_state->hw.adjusted_mode);
	*vmax_vblank_start = 0;

	if (!vrr_enable)
		return;

	mode->crtc_vtotal = intel_vrr_vmax_vtotal(crtc_state);
	mode->crtc_vblank_end = intel_vrr_vmax_vtotal(crtc_state);
	mode->crtc_vblank_start = intel_vrr_vmin_vblank_start(crtc_state);
	*vmax_vblank_start = intel_vrr_vmax_vblank_start(crtc_state);
}

void intel_crtc_update_active_timings(const struct intel_crtc_state *crtc_state,
				      bool vrr_enable)
{
@@ -517,19 +534,13 @@ void intel_crtc_update_active_timings(const struct intel_crtc_state *crtc_state,
	int vmax_vblank_start = 0;
	unsigned long irqflags;

	drm_mode_init(&adjusted_mode, &crtc_state->hw.adjusted_mode);

	if (vrr_enable) {
		drm_WARN_ON(display->drm,
			    (mode_flags & I915_MODE_FLAG_VRR) == 0);
	intel_crtc_active_timings(&adjusted_mode, &vmax_vblank_start,
				  crtc_state, vrr_enable);

		adjusted_mode.crtc_vtotal = intel_vrr_vmax_vtotal(crtc_state);
		adjusted_mode.crtc_vblank_end = intel_vrr_vmax_vtotal(crtc_state);
		adjusted_mode.crtc_vblank_start = intel_vrr_vmin_vblank_start(crtc_state);
		vmax_vblank_start = intel_vrr_vmax_vblank_start(crtc_state);
	} else {
	if (vrr_enable)
		drm_WARN_ON(display->drm, (mode_flags & I915_MODE_FLAG_VRR) == 0);
	else
		mode_flags &= ~I915_MODE_FLAG_VRR;
	}

	/*
	 * Belts and suspenders locking to guarantee everyone sees 100%