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

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

drm/i915: Fail if we can't get a fence for gen2/3 tiled scanout



Gen2/3 display engine depends on the fence for tiled scanout. So if we
fail to get a fence fail the entire operation.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180221160235.11134-2-ville.syrjala@linux.intel.com


Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent db9c06df
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -2123,6 +2123,8 @@ intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb,
		goto err;

	if (i915_vma_is_map_and_fenceable(vma)) {
		int ret;

		/* Install a fence for tiled scan-out. Pre-i965 always needs a
		 * fence, whereas 965+ only requires a fence if using
		 * framebuffer compression.  For simplicity, we always, when
@@ -2139,7 +2141,13 @@ intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb,
		 * something and try to run the system in a "less than optimal"
		 * mode that matches the user configuration.
		 */
		if (i915_vma_pin_fence(vma) == 0 && vma->fence)
		ret = i915_vma_pin_fence(vma);
		if (ret != 0 && INTEL_GEN(dev_priv) < 4) {
			vma = ERR_PTR(ret);
			goto err;
		}

		if (ret == 0 && vma->fence)
			*out_flags |= PLANE_HAS_FENCE;
	}