diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 11 |
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) { |
