aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 56b52a4767d4..31e8269e6e3d 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1923,6 +1923,17 @@ static int ggtt_bind_vma(struct i915_vma *vma,
1923 vma->vm->insert_entries(vma->vm, pages, 1923 vma->vm->insert_entries(vma->vm, pages,
1924 vma->node.start, 1924 vma->node.start,
1925 cache_level, pte_flags); 1925 cache_level, pte_flags);
1926
1927 /* Note the inconsistency here is due to absence of the
1928 * aliasing ppgtt on gen4 and earlier. Though we always
1929 * request PIN_USER for execbuffer (translated to LOCAL_BIND),
1930 * without the appgtt, we cannot honour that request and so
1931 * must substitute it with a global binding. Since we do this
1932 * behind the upper layers back, we need to explicitly set
1933 * the bound flag ourselves.
1934 */
1935 vma->bound |= GLOBAL_BIND;
1936
1926 } 1937 }
1927 1938
1928 if (dev_priv->mm.aliasing_ppgtt && flags & LOCAL_BIND) { 1939 if (dev_priv->mm.aliasing_ppgtt && flags & LOCAL_BIND) {