summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter2013-06-02 17:23:01 +0200
committerDaniel Vetter2013-06-03 14:16:12 +0200
commitd7697eea3eec74c561d12887d892c53ac4380c00 (patch)
treed061d515c8b7cbdee1c68ed365742f20ff048a58
parentdrm/i915: s/drm_i915_private_t/struct drm_i915_private/ (diff)
downloadkernel-qcow2-linux-d7697eea3eec74c561d12887d892c53ac4380c00.tar.gz
kernel-qcow2-linux-d7697eea3eec74c561d12887d892c53ac4380c00.tar.xz
kernel-qcow2-linux-d7697eea3eec74c561d12887d892c53ac4380c00.zip
drm/i915: optimize vblank waits in set_base_atomic
We only need to do them if the pipe is actually running and if the framebuffers have changed. Removes two "wait for vblank timed out" messages when doing a suspend/resume cycle on my i855gm. v2: s/to_intel_ctrc(crtc)/intel_crtc/ spotted by Chris. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c112466bb769..988e3dee5ece 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2212,7 +2212,8 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
crtc->y = y;
if (old_fb) {
- intel_wait_for_vblank(dev, intel_crtc->pipe);
+ if (intel_crtc->active && old_fb != fb)
+ intel_wait_for_vblank(dev, intel_crtc->pipe);
intel_unpin_fb_obj(to_intel_framebuffer(old_fb)->obj);
}