diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 8a6db27dd966..8300c5b38203 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -2078,6 +2078,7 @@ void i915_gem_vma_destroy(struct i915_vma *vma); | |||
2078 | 2078 | ||
2079 | #define PIN_MAPPABLE 0x1 | 2079 | #define PIN_MAPPABLE 0x1 |
2080 | #define PIN_NONBLOCK 0x2 | 2080 | #define PIN_NONBLOCK 0x2 |
2081 | #define PIN_GLOBAL 0x4 | ||
2081 | int __must_check i915_gem_object_pin(struct drm_i915_gem_object *obj, | 2082 | int __must_check i915_gem_object_pin(struct drm_i915_gem_object *obj, |
2082 | struct i915_address_space *vm, | 2083 | struct i915_address_space *vm, |
2083 | uint32_t alignment, | 2084 | uint32_t alignment, |
@@ -2286,7 +2287,7 @@ i915_gem_obj_ggtt_pin(struct drm_i915_gem_object *obj, | |||
2286 | uint32_t alignment, | 2287 | uint32_t alignment, |
2287 | unsigned flags) | 2288 | unsigned flags) |
2288 | { | 2289 | { |
2289 | return i915_gem_object_pin(obj, obj_to_ggtt(obj), alignment, flags); | 2290 | return i915_gem_object_pin(obj, obj_to_ggtt(obj), alignment, flags | PIN_GLOBAL); |
2290 | } | 2291 | } |
2291 | 2292 | ||
2292 | /* i915_gem_context.c */ | 2293 | /* i915_gem_context.c */ |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index aa263e371ebc..b3a15c9fa034 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -3838,7 +3838,7 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj, | |||
3838 | struct i915_vma *vma; | 3838 | struct i915_vma *vma; |
3839 | int ret; | 3839 | int ret; |
3840 | 3840 | ||
3841 | if (WARN_ON(flags & PIN_MAPPABLE && !i915_is_ggtt(vm))) | 3841 | if (WARN_ON(flags & (PIN_GLOBAL | PIN_MAPPABLE) && !i915_is_ggtt(vm))) |
3842 | return -EINVAL; | 3842 | return -EINVAL; |
3843 | 3843 | ||
3844 | vma = i915_gem_obj_to_vma(obj, vm); | 3844 | vma = i915_gem_obj_to_vma(obj, vm); |
@@ -3872,7 +3872,7 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj, | |||
3872 | vma = i915_gem_obj_to_vma(obj, vm); | 3872 | vma = i915_gem_obj_to_vma(obj, vm); |
3873 | 3873 | ||
3874 | vma->bind_vma(vma, obj->cache_level, | 3874 | vma->bind_vma(vma, obj->cache_level, |
3875 | flags & PIN_MAPPABLE ? GLOBAL_BIND : 0); | 3875 | flags & PIN_GLOBAL ? GLOBAL_BIND : 0); |
3876 | 3876 | ||
3877 | i915_gem_obj_to_vma(obj, vm)->pin_count++; | 3877 | i915_gem_obj_to_vma(obj, vm)->pin_count++; |
3878 | if (flags & PIN_MAPPABLE) | 3878 | if (flags & PIN_MAPPABLE) |
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 013bd5ab3913..b35849bbc367 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c | |||
@@ -558,7 +558,7 @@ i915_gem_execbuffer_reserve_vma(struct i915_vma *vma, | |||
558 | flags |= PIN_MAPPABLE; | 558 | flags |= PIN_MAPPABLE; |
559 | 559 | ||
560 | if (entry->flags & EXEC_OBJECT_NEEDS_GTT) | 560 | if (entry->flags & EXEC_OBJECT_NEEDS_GTT) |
561 | flags |= PIN_MAPPABLE; | 561 | flags |= PIN_GLOBAL; |
562 | 562 | ||
563 | ret = i915_gem_object_pin(obj, vma->vm, entry->alignment, flags); | 563 | ret = i915_gem_object_pin(obj, vma->vm, entry->alignment, flags); |
564 | if (ret) | 564 | if (ret) |