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

Commit bb2043de authored by Damien Lespiau's avatar Damien Lespiau Committed by Daniel Vetter
Browse files

drm/i915: Add a more detailed comment about the set_base() fastboot hack



Instead of it just being on the mailing list, let's put Jesse's
explanation next to the code in question.

Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 02f4c9e0
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -2320,7 +2320,19 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
		return ret;
	}

	/* Update pipe size and adjust fitter if needed */
	/*
	 * Update pipe size and adjust fitter if needed: the reason for this is
	 * that in compute_mode_changes we check the native mode (not the pfit
	 * mode) to see if we can flip rather than do a full mode set. In the
	 * fastboot case, we'll flip, but if we don't update the pipesrc and
	 * pfit state, we'll end up with a big fb scanned out into the wrong
	 * sized surface.
	 *
	 * To fix this properly, we need to hoist the checks up into
	 * compute_mode_changes (or above), check the actual pfit state and
	 * whether the platform allows pfit disable with pipe active, and only
	 * then update the pipesrc and pfit state, even on the flip path.
	 */
	if (i915_fastboot) {
		I915_WRITE(PIPESRC(intel_crtc->pipe),
			   ((crtc->mode.hdisplay - 1) << 16) |