Skip to content

Commit

Permalink
drm/i915: split PIN_GLOBAL out from PIN_MAPPABLE
Browse files Browse the repository at this point in the history
With abitrary pin flags it makes sense to split out a "please bind
this into global gtt" from the "please allocate in the mappable
range".

Use this unconditionally in our global gtt pin helper since this is
what its callers want. Later patches will drop PIN_MAPPABLE where it's
not strictly needed.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Daniel Vetter committed Feb 14, 2014
1 parent 1ec9e26 commit bf3d149
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
3 changes: 2 additions & 1 deletion drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -2078,6 +2078,7 @@ void i915_gem_vma_destroy(struct i915_vma *vma);

#define PIN_MAPPABLE 0x1
#define PIN_NONBLOCK 0x2
#define PIN_GLOBAL 0x4
int __must_check i915_gem_object_pin(struct drm_i915_gem_object *obj,
struct i915_address_space *vm,
uint32_t alignment,
Expand Down Expand Up @@ -2286,7 +2287,7 @@ i915_gem_obj_ggtt_pin(struct drm_i915_gem_object *obj,
uint32_t alignment,
unsigned flags)
{
return i915_gem_object_pin(obj, obj_to_ggtt(obj), alignment, flags);
return i915_gem_object_pin(obj, obj_to_ggtt(obj), alignment, flags | PIN_GLOBAL);
}

/* i915_gem_context.c */
Expand Down
4 changes: 2 additions & 2 deletions drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -3838,7 +3838,7 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj,
struct i915_vma *vma;
int ret;

if (WARN_ON(flags & PIN_MAPPABLE && !i915_is_ggtt(vm)))
if (WARN_ON(flags & (PIN_GLOBAL | PIN_MAPPABLE) && !i915_is_ggtt(vm)))
return -EINVAL;

vma = i915_gem_obj_to_vma(obj, vm);
Expand Down Expand Up @@ -3872,7 +3872,7 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj,
vma = i915_gem_obj_to_vma(obj, vm);

vma->bind_vma(vma, obj->cache_level,
flags & PIN_MAPPABLE ? GLOBAL_BIND : 0);
flags & PIN_GLOBAL ? GLOBAL_BIND : 0);

i915_gem_obj_to_vma(obj, vm)->pin_count++;
if (flags & PIN_MAPPABLE)
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/i915_gem_execbuffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ i915_gem_execbuffer_reserve_vma(struct i915_vma *vma,
flags |= PIN_MAPPABLE;

if (entry->flags & EXEC_OBJECT_NEEDS_GTT)
flags |= PIN_MAPPABLE;
flags |= PIN_GLOBAL;

ret = i915_gem_object_pin(obj, vma->vm, entry->alignment, flags);
if (ret)
Expand Down

0 comments on commit bf3d149

Please sign in to comment.