From 942e1f6d3220207fa177557ab3019b6d99d5ca8b Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 3 May 2012 15:47:57 +0100 Subject: [PATCH] --- yaml --- r: 307419 b: refs/heads/master c: acb87dfb4b847de1de1134e3e767e9a773d6454e h: refs/heads/master i: 307417: 3fba989f20e6f4e59309c902a49d0c03347f2019 307415: ae8e9364a3b6f832843b89bec86ed8366bd04459 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 ++++- trunk/drivers/gpu/drm/i915/intel_display.c | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0ba03e1904db..7a729fb43b06 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a928d536c09eb071d114aa94bc60d002e7c8f92b +refs/heads/master: acb87dfb4b847de1de1134e3e767e9a773d6454e diff --git a/trunk/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/trunk/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 206b9bbe6979..21fc11d84712 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -967,11 +967,14 @@ i915_gem_execbuffer_move_to_active(struct list_head *objects, obj->pending_gpu_write = true; list_move_tail(&obj->gpu_write_list, &ring->gpu_write_list); - intel_mark_busy(ring->dev, obj); + if (obj->pin_count) /* check for potential scanout */ + intel_mark_busy(ring->dev, obj); } trace_i915_gem_object_change_domain(obj, old_read, old_write); } + + intel_mark_busy(ring->dev, NULL); } static void diff --git a/trunk/drivers/gpu/drm/i915/intel_display.c b/trunk/drivers/gpu/drm/i915/intel_display.c index b322bde98675..1cbe2680fdec 100644 --- a/trunk/drivers/gpu/drm/i915/intel_display.c +++ b/trunk/drivers/gpu/drm/i915/intel_display.c @@ -5558,6 +5558,9 @@ void intel_mark_busy(struct drm_device *dev, struct drm_i915_gem_object *obj) mod_timer(&dev_priv->idle_timer, jiffies + msecs_to_jiffies(GPU_IDLE_TIMEOUT)); + if (obj == NULL) + return; + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { if (!crtc->fb) continue; @@ -6007,6 +6010,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, goto cleanup_pending; intel_disable_fbc(dev); + intel_mark_busy(dev, obj); mutex_unlock(&dev->struct_mutex); trace_i915_flip_request(intel_crtc->plane, obj);