[Intel-gfx] [PATCH v2 1/3] drm/i915: Cleanup i915_gem_restore_gtt_mappings()
David Weinehall
david.weinehall at linux.intel.com
Fri Nov 18 13:36:45 UTC 2016
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 at linux.intel.com>
CC: Chris Wilson <chris at chris-wilson.co.uk>
---
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
More information about the Intel-gfx
mailing list