Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

drm/i915: Call drm_calc_timestamping_constants() earlier



Update the pixel/line/frame duration information when we switch to the
new pipe config. This will keep the timestamping constants in better
sync with the real hardware state.

Reviewed-by: default avatar <mario.kleiner.de@gmail.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
parent 4b4b9238
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -9660,6 +9660,14 @@ static int __intel_set_mode(struct drm_crtc *crtc,
		/* mode_set/enable/disable functions rely on a correct pipe
		 * config. */
		to_intel_crtc(crtc)->config = *pipe_config;

		/*
		 * Calculate and store various constants which
		 * are later needed by vblank and swap-completion
		 * timestamping. They are derived from true hwmode.
		 */
		drm_calc_timestamping_constants(crtc,
						&pipe_config->adjusted_mode);
	}

	/* Only after disabling all output pipelines that will be changed can we
@@ -9683,15 +9691,6 @@ static int __intel_set_mode(struct drm_crtc *crtc,
	for_each_intel_crtc_masked(dev, prepare_pipes, intel_crtc)
		dev_priv->display.crtc_enable(&intel_crtc->base);

	if (modeset_pipes) {
		/* Calculate and store various constants which
		 * are later needed by vblank and swap-completion
		 * timestamping. They are derived from true hwmode.
		 */
		drm_calc_timestamping_constants(crtc,
						&pipe_config->adjusted_mode);
	}

	/* FIXME: add subpixel order */
done:
	if (ret && crtc->enabled)