On resume we unbind+bind our VMA-mappings. This patch simplifies this a bit by introducing a restore_vma() helper. As a nice side-effect this also makes the resume callgraph self-documenting. v2: move the helper to i915_gem_gtt.c since it's only used by i915_gem_restore_gtt_mappings(), rename to restore_vma(), and make static (Chris) Signed-off-by: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx> CC: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem_gtt.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index b4bde1452f2a..2711044e3bf2 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -3277,6 +3277,16 @@ int i915_ggtt_enable_hw(struct drm_i915_private *dev_priv) return 0; } +static bool restore_vma(struct i915_vma *vma) +{ + if (i915_vma_is_pinned(vma)) { + WARN_ON(i915_vma_bind(vma, vma->obj->cache_level, PIN_UPDATE)); + return true; + } else { + WARN_ON(i915_vma_unbind(vma)); + return false; + } +} void i915_gem_restore_gtt_mappings(struct drm_i915_private *dev_priv) { struct i915_ggtt *ggtt = &dev_priv->ggtt; @@ -3299,12 +3309,7 @@ void i915_gem_restore_gtt_mappings(struct drm_i915_private *dev_priv) if (vma->vm != &ggtt->base) continue; - if (!i915_vma_unbind(vma)) - continue; - - WARN_ON(i915_vma_bind(vma, obj->cache_level, - PIN_UPDATE)); - ggtt_bound = true; + ggtt_bound |= restore_vma(vma); } if (ggtt_bound) -- 2.10.2 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx