Lines Matching refs:eb

56 	struct eb_vmas *eb = NULL;  in eb_create()  local
62 eb = kmalloc(size, GFP_TEMPORARY | __GFP_NOWARN | __GFP_NORETRY); in eb_create()
65 if (eb == NULL) { in eb_create()
71 eb = kzalloc(count*sizeof(struct hlist_head) + in eb_create()
74 if (eb == NULL) in eb_create()
75 return eb; in eb_create()
77 eb->and = count - 1; in eb_create()
79 eb->and = -args->buffer_count; in eb_create()
81 INIT_LIST_HEAD(&eb->vmas); in eb_create()
82 return eb; in eb_create()
86 eb_reset(struct eb_vmas *eb) in eb_reset() argument
88 if (eb->and >= 0) in eb_reset()
89 memset(eb->buckets, 0, (eb->and+1)*sizeof(struct hlist_head)); in eb_reset()
93 eb_lookup_vmas(struct eb_vmas *eb, in eb_lookup_vmas() argument
154 list_add_tail(&vma->exec_list, &eb->vmas); in eb_lookup_vmas()
158 if (eb->and < 0) { in eb_lookup_vmas()
159 eb->lut[i] = vma; in eb_lookup_vmas()
164 &eb->buckets[handle & eb->and]); in eb_lookup_vmas()
188 static struct i915_vma *eb_get_vma(struct eb_vmas *eb, unsigned long handle) in eb_get_vma() argument
190 if (eb->and < 0) { in eb_get_vma()
191 if (handle >= -eb->and) in eb_get_vma()
193 return eb->lut[handle]; in eb_get_vma()
198 head = &eb->buckets[handle & eb->and]; in eb_get_vma()
235 static void eb_destroy(struct eb_vmas *eb) in eb_destroy() argument
237 while (!list_empty(&eb->vmas)) { in eb_destroy()
240 vma = list_first_entry(&eb->vmas, in eb_destroy()
247 kfree(eb); in eb_destroy()
386 struct eb_vmas *eb, in i915_gem_execbuffer_relocate_entry() argument
397 target_vma = eb_get_vma(eb, reloc->target_handle); in i915_gem_execbuffer_relocate_entry()
493 struct eb_vmas *eb) in i915_gem_execbuffer_relocate_vma() argument
517 ret = i915_gem_execbuffer_relocate_entry(vma->obj, eb, r); in i915_gem_execbuffer_relocate_vma()
539 struct eb_vmas *eb, in i915_gem_execbuffer_relocate_vma_slow() argument
546 ret = i915_gem_execbuffer_relocate_entry(vma->obj, eb, &relocs[i]); in i915_gem_execbuffer_relocate_vma_slow()
555 i915_gem_execbuffer_relocate(struct eb_vmas *eb) in i915_gem_execbuffer_relocate() argument
568 list_for_each_entry(vma, &eb->vmas, exec_list) { in i915_gem_execbuffer_relocate()
569 ret = i915_gem_execbuffer_relocate_vma(vma, eb); in i915_gem_execbuffer_relocate()
783 struct eb_vmas *eb, in i915_gem_execbuffer_relocate_slow() argument
794 vm = list_first_entry(&eb->vmas, struct i915_vma, exec_list)->vm; in i915_gem_execbuffer_relocate_slow()
797 while (!list_empty(&eb->vmas)) { in i915_gem_execbuffer_relocate_slow()
798 vma = list_first_entry(&eb->vmas, struct i915_vma, exec_list); in i915_gem_execbuffer_relocate_slow()
864 eb_reset(eb); in i915_gem_execbuffer_relocate_slow()
865 ret = eb_lookup_vmas(eb, exec, args, vm, file); in i915_gem_execbuffer_relocate_slow()
870 ret = i915_gem_execbuffer_reserve(ring, &eb->vmas, &need_relocs); in i915_gem_execbuffer_relocate_slow()
874 list_for_each_entry(vma, &eb->vmas, exec_list) { in i915_gem_execbuffer_relocate_slow()
876 ret = i915_gem_execbuffer_relocate_vma_slow(vma, eb, in i915_gem_execbuffer_relocate_slow()
1139 struct eb_vmas *eb, in i915_gem_execbuffer_parse() argument
1174 list_add_tail(&vma->exec_list, &eb->vmas); in i915_gem_execbuffer_parse()
1383 eb_get_batch(struct eb_vmas *eb) in eb_get_batch() argument
1385 struct i915_vma *vma = list_entry(eb->vmas.prev, typeof(*vma), exec_list); in eb_get_batch()
1408 struct eb_vmas *eb; in i915_gem_do_execbuffer() local
1508 eb = eb_create(args); in i915_gem_do_execbuffer()
1509 if (eb == NULL) { in i915_gem_do_execbuffer()
1517 ret = eb_lookup_vmas(eb, exec, args, vm, file); in i915_gem_do_execbuffer()
1522 batch_obj = eb_get_batch(eb); in i915_gem_do_execbuffer()
1526 ret = i915_gem_execbuffer_reserve(ring, &eb->vmas, &need_relocs); in i915_gem_do_execbuffer()
1532 ret = i915_gem_execbuffer_relocate(eb); in i915_gem_do_execbuffer()
1536 eb, exec); in i915_gem_do_execbuffer()
1553 eb, in i915_gem_do_execbuffer()
1605 &eb->vmas, batch_obj, exec_start, in i915_gem_do_execbuffer()
1619 eb_destroy(eb); in i915_gem_do_execbuffer()