]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Flush the pending flips on the CRTC before modification
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 27 Sep 2012 20:25:58 +0000 (21:25 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 2 Oct 2012 09:50:26 +0000 (11:50 +0200)
commit7bc33a0d0015c2f98682eddc472cc55aa415dfa5
tree5fbdbef644e855410645a53802db9c555f976357
parent1f799f45a36c377e2a5ab5ec822d5d26c9716722
drm/i915: Flush the pending flips on the CRTC before modification

This was meant to be the purpose of the
intel_crtc_wait_for_pending_flips() function which is called whilst
preparing the CRTC for a modeset or before disabling. However, as Ville
Syrjala pointed out, we set the pending flip notification on the old
framebuffer that is no longer attached to the CRTC by the time we come
to flush the pending operations. Instead, we can simply wait on the
pending unpin work to be finished on this CRTC, knowning that the
hardware has therefore finished modifying the registers, before proceeding
with our direct access.

Fixes i-g-t/flip_test on non-pch platforms. pch platforms simply
schedule the flip immediately when the pipe is disabled, leading
to other funny issues.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org
[danvet: Added i-g-t note and cc: stable]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c