From: Chris Wilson Date: Tue, 7 Dec 2010 23:00:20 +0000 (+0000) Subject: Merge branch 'drm-intel-fixes' into drm-intel-next X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=1a1c69762a14f50dd574a9cbabbfa1b1542f580e;p=linux-beck.git Merge branch 'drm-intel-fixes' into drm-intel-next Conflicts: drivers/gpu/drm/i915/i915_gem.c drivers/gpu/drm/i915/intel_dp.c --- 1a1c69762a14f50dd574a9cbabbfa1b1542f580e diff --cc drivers/gpu/drm/i915/i915_gem.c index b57ce033e42a,275ec6ed43ae..27fa2a1b26a5 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@@ -3356,9 -4374,20 +3356,24 @@@ i915_gem_busy_ioctl(struct drm_device * * use this buffer rather sooner than later, so issuing the required * flush earlier is beneficial. */ - if (obj->base.write_domain & I915_GEM_GPU_DOMAINS) - if (obj->write_domain & I915_GEM_GPU_DOMAINS) { - i915_gem_flush_ring(dev, file_priv, - obj_priv->ring, - 0, obj->write_domain); - } else if (obj_priv->ring->outstanding_lazy_request) { ++ if (obj->base.write_domain & I915_GEM_GPU_DOMAINS) { + i915_gem_flush_ring(dev, obj->ring, + 0, obj->base.write_domain); ++ } else if (obj->ring->outstanding_lazy_request == ++ obj->last_rendering_seqno) { ++ struct drm_i915_gem_request *request; ++ + /* This ring is not being cleared by active usage, + * so emit a request to do so. + */ - u32 seqno = i915_add_request(dev, - NULL, NULL, - obj_priv->ring); - if (seqno == 0) ++ request = kzalloc(sizeof(*request), GFP_KERNEL); ++ if (request) ++ ret = i915_add_request(dev, ++ NULL, request, ++ obj->ring); ++ else + ret = -ENOMEM; + } /* Update the active list for the hardware's current position. * Otherwise this only updates on a delayed timer or when irqs