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

Commit 46c3fce6 authored by Rodrigo Vivi's avatar Rodrigo Vivi Committed by Daniel Vetter
Browse files

drm/i915: VLV/CHV PSR needs to exit PSR on every flush.



ON these platforms we don't have hardware tracking working for any case.
So we need to fake this on software by forcing psr to exit on every
flush.

Manual tests indicated this was needed.

Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: default avatarDurgadoss R <durgadoss.r@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent cd524719
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -620,13 +620,11 @@ void intel_psr_flush(struct drm_device *dev,

	/*
	 * On Valleyview and Cherryview we don't use hardware tracking so
	 * sprite plane updates or cursor moves don't result in a PSR
	 * any plane updates or cursor moves don't result in a PSR
	 * invalidating. Which means we need to manually fake this in
	 * software for all flushes, not just when we've seen a preceding
	 * invalidation through frontbuffer rendering. */
	if (!HAS_DDI(dev) &&
	    ((frontbuffer_bits & INTEL_FRONTBUFFER_SPRITE(pipe)) ||
	     (frontbuffer_bits & INTEL_FRONTBUFFER_CURSOR(pipe))))
	if (!HAS_DDI(dev))
		intel_psr_exit(dev);

	if (!dev_priv->psr.active && !dev_priv->psr.busy_frontbuffer_bits)