aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-09-13 18:56:38 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-09-14 05:34:27 -0400
commit7213342db58adb7b8e399a00fc423951d7f75369 (patch)
treea302b3708792f34fed855fe6ce3301de7bea8c64 /drivers/gpu/drm/i915/intel_display.c
parentb3b079dbef06c7f775178d561a4c8e47b7447139 (diff)
drm/i915: Consolidate flushing the display plane
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 16ae34559caa..810ed2dca4c7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1448,6 +1448,12 @@ intel_pin_and_fence_fb_obj(struct drm_device *dev, struct drm_gem_object *obj)
1448 if (ret != 0) 1448 if (ret != 0)
1449 return ret; 1449 return ret;
1450 1450
1451 ret = i915_gem_object_set_to_display_plane(obj);
1452 if (ret != 0) {
1453 i915_gem_object_unpin(obj);
1454 return ret;
1455 }
1456
1451 /* Install a fence for tiled scan-out. Pre-i965 always needs a 1457 /* Install a fence for tiled scan-out. Pre-i965 always needs a
1452 * fence, whereas 965+ only requires a fence if using 1458 * fence, whereas 965+ only requires a fence if using
1453 * framebuffer compression. For simplicity, we always install 1459 * framebuffer compression. For simplicity, we always install
@@ -1589,13 +1595,6 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
1589 return ret; 1595 return ret;
1590 } 1596 }
1591 1597
1592 ret = i915_gem_object_set_to_display_plane(obj);
1593 if (ret != 0) {
1594 i915_gem_object_unpin(obj);
1595 mutex_unlock(&dev->struct_mutex);
1596 return ret;
1597 }
1598
1599 ret = intel_pipe_set_base_atomic(crtc, crtc->fb, x, y); 1598 ret = intel_pipe_set_base_atomic(crtc, crtc->fb, x, y);
1600 if (ret) { 1599 if (ret) {
1601 i915_gem_object_unpin(obj); 1600 i915_gem_object_unpin(obj);
@@ -5043,9 +5042,6 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
5043 drm_gem_object_reference(obj); 5042 drm_gem_object_reference(obj);
5044 5043
5045 crtc->fb = fb; 5044 crtc->fb = fb;
5046 ret = i915_gem_object_flush_write_domain(obj);
5047 if (ret)
5048 goto cleanup_objs;
5049 5045
5050 ret = drm_vblank_get(dev, intel_crtc->pipe); 5046 ret = drm_vblank_get(dev, intel_crtc->pipe);
5051 if (ret) 5047 if (ret)