On Fri, Jul 18, 2014 at 1:16 AM, Ben Widawsky <b...@bwidawsk.net> wrote: > On Fri, Jul 11, 2014 at 10:20:08AM -0700, armin.c.re...@intel.com wrote: >> From: Armin Reese <armin.c.re...@intel.com> >> >> Signed-off-by: Armin Reese <armin.c.re...@intel.com> >> --- >> drivers/gpu/drm/i915/i915_gem_gtt.c | 13 ++++++------- >> 1 file changed, 6 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c >> b/drivers/gpu/drm/i915/i915_gem_gtt.c >> index afd4eef..7e2190e 100644 >> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c >> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c >> @@ -1624,18 +1624,17 @@ static void ggtt_unbind_vma(struct i915_vma *vma) >> >> void i915_gem_gtt_finish_object(struct drm_i915_gem_object *obj) >> { >> - struct drm_device *dev = obj->base.dev; >> - struct drm_i915_private *dev_priv = dev->dev_private; >> - bool interruptible; >> - >> - interruptible = do_idling(dev_priv); >> + if (!obj->has_dma_mapping) { >> + struct drm_device *dev = obj->base.dev; >> + struct drm_i915_private *dev_priv = dev->dev_private; >> + bool interruptible = do_idling(dev_priv); >> >> - if (!obj->has_dma_mapping) >> dma_unmap_sg(&dev->pdev->dev, >> obj->pages->sgl, obj->pages->nents, >> PCI_DMA_BIDIRECTIONAL); >> >> - undo_idling(dev_priv, interruptible); >> + undo_idling(dev_priv, interruptible); >> + } >> } >> >> static void i915_gtt_color_adjust(struct drm_mm_node *node, > > Note that this doesn't do much on platforms you care about.
To elaborate: This w/a is _only_ used on ironlake when the iommu is enabled. Also the performance impact of it is so disastrous that any kind of optimization is pointless. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx