• Home
  • Raw
  • Download

Lines Matching refs:vm

13 	struct i915_address_space vm;  member
20 #define i915_is_dpt(vm) ((vm)->is_dpt) argument
23 i915_vm_to_dpt(struct i915_address_space *vm) in i915_vm_to_dpt() argument
25 BUILD_BUG_ON(offsetof(struct i915_dpt, vm)); in i915_vm_to_dpt()
26 GEM_BUG_ON(!i915_is_dpt(vm)); in i915_vm_to_dpt()
27 return container_of(vm, struct i915_dpt, vm); in i915_vm_to_dpt()
30 #define dpt_total_entries(dpt) ((dpt)->vm.total >> PAGE_SHIFT)
37 static void dpt_insert_page(struct i915_address_space *vm, in dpt_insert_page() argument
43 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_insert_page()
47 vm->pte_encode(addr, level, flags)); in dpt_insert_page()
50 static void dpt_insert_entries(struct i915_address_space *vm, in dpt_insert_entries() argument
55 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_insert_entries()
57 const gen8_pte_t pte_encode = vm->pte_encode(0, level, flags); in dpt_insert_entries()
72 static void dpt_clear_range(struct i915_address_space *vm, in dpt_clear_range() argument
77 static void dpt_bind_vma(struct i915_address_space *vm, in dpt_bind_vma() argument
88 if (vma->vm->has_read_only && i915_gem_object_is_readonly(obj)) in dpt_bind_vma()
93 vma->vm->insert_entries(vma->vm, vma, cache_level, pte_flags); in dpt_bind_vma()
105 static void dpt_unbind_vma(struct i915_address_space *vm, struct i915_vma *vma) in dpt_unbind_vma() argument
107 vm->clear_range(vm, vma->node.start, vma->size); in dpt_unbind_vma()
110 static void dpt_cleanup(struct i915_address_space *vm) in dpt_cleanup() argument
112 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_cleanup()
117 struct i915_vma *intel_dpt_pin(struct i915_address_space *vm) in intel_dpt_pin() argument
119 struct drm_i915_private *i915 = vm->i915; in intel_dpt_pin()
120 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_pin()
152 void intel_dpt_unpin(struct i915_address_space *vm) in intel_dpt_unpin() argument
154 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_unpin()
166 struct i915_address_space *vm; in intel_dpt_create() local
197 vm = &dpt->vm; in intel_dpt_create()
199 vm->gt = &i915->gt; in intel_dpt_create()
200 vm->i915 = i915; in intel_dpt_create()
201 vm->dma = i915->drm.dev; in intel_dpt_create()
202 vm->total = (size / sizeof(gen8_pte_t)) * I915_GTT_PAGE_SIZE; in intel_dpt_create()
203 vm->is_dpt = true; in intel_dpt_create()
205 i915_address_space_init(vm, VM_CLASS_DPT); in intel_dpt_create()
207 vm->insert_page = dpt_insert_page; in intel_dpt_create()
208 vm->clear_range = dpt_clear_range; in intel_dpt_create()
209 vm->insert_entries = dpt_insert_entries; in intel_dpt_create()
210 vm->cleanup = dpt_cleanup; in intel_dpt_create()
212 vm->vma_ops.bind_vma = dpt_bind_vma; in intel_dpt_create()
213 vm->vma_ops.unbind_vma = dpt_unbind_vma; in intel_dpt_create()
214 vm->vma_ops.set_pages = ggtt_set_pages; in intel_dpt_create()
215 vm->vma_ops.clear_pages = clear_pages; in intel_dpt_create()
217 vm->pte_encode = gen8_ggtt_pte_encode; in intel_dpt_create()
221 return &dpt->vm; in intel_dpt_create()
224 void intel_dpt_destroy(struct i915_address_space *vm) in intel_dpt_destroy() argument
226 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_destroy()
228 i915_vm_close(&dpt->vm); in intel_dpt_destroy()