From: Ander Conselvan de Oliveira Date: Tue, 28 Oct 2014 13:10:14 +0000 (+0200) Subject: drm/i915: Use vblank evade mechanism in mmio_flip X-Git-Tag: omap-for-v3.20/drop-legacy-3517~77^2~64^2~50 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9362c7c576d39ebca81f82e931ab109c065d42be;p=pandora-kernel.git drm/i915: Use vblank evade mechanism in mmio_flip Currently we program just DPSCNTR and DSPSTRIDE directly from the ring interrupt handler, which is fine since the hardware guarantees that those are update atomically. When we have atomic page flips we'll want to be able to update also the offset registers, and then we need to use the vblank evade mechanism to guarantee atomicity. Since that mechanism introduces a wait, we need to do the actual register write from a work when it is triggered by the ring interrupt. v2: Explain the need for mmio_flip.work in the commit message (Paulo) Initialize the mmio_flip work in intel_crtc_init() (Paulo) Prevent new flips the previous flip work finishes (Paulo) Don't acquire modeset locks for mmio flip work Note: Paulo had reservations about the work item leaking over a plane disable. But insofar as we do lack these checks that issue is already present with the existing code. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter --- Reading git-diff-tree failed