diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-13 18:56:38 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-14 05:34:27 -0400 |
commit | 7213342db58adb7b8e399a00fc423951d7f75369 (patch) | |
tree | a302b3708792f34fed855fe6ce3301de7bea8c64 /drivers/gpu/drm/i915/intel_display.c | |
parent | b3b079dbef06c7f775178d561a4c8e47b7447139 (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.c | 16 |
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) |