Lines Matching full:vm
17 struct i915_address_space vm; member
24 #define i915_is_dpt(vm) ((vm)->is_dpt) argument
27 i915_vm_to_dpt(struct i915_address_space *vm) in i915_vm_to_dpt() argument
29 BUILD_BUG_ON(offsetof(struct i915_dpt, vm)); in i915_vm_to_dpt()
30 drm_WARN_ON(&vm->i915->drm, !i915_is_dpt(vm)); in i915_vm_to_dpt()
31 return container_of(vm, struct i915_dpt, vm); in i915_vm_to_dpt()
34 #define dpt_total_entries(dpt) ((dpt)->vm.total >> PAGE_SHIFT)
41 static void dpt_insert_page(struct i915_address_space *vm, in dpt_insert_page() argument
47 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_insert_page()
51 vm->pte_encode(addr, pat_index, flags)); in dpt_insert_page()
54 static void dpt_insert_entries(struct i915_address_space *vm, in dpt_insert_entries() argument
59 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_insert_entries()
61 const gen8_pte_t pte_encode = vm->pte_encode(0, pat_index, flags); in dpt_insert_entries()
76 static void dpt_clear_range(struct i915_address_space *vm, in dpt_clear_range() argument
81 static void dpt_bind_vma(struct i915_address_space *vm, in dpt_bind_vma() argument
94 if (vm->has_read_only && vma_res->bi.readonly) in dpt_bind_vma()
99 vm->insert_entries(vm, vma_res, pat_index, pte_flags); in dpt_bind_vma()
111 static void dpt_unbind_vma(struct i915_address_space *vm, in dpt_unbind_vma() argument
114 vm->clear_range(vm, vma_res->start, vma_res->vma_size); in dpt_unbind_vma()
117 static void dpt_cleanup(struct i915_address_space *vm) in dpt_cleanup() argument
119 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_cleanup()
124 struct i915_vma *intel_dpt_pin(struct i915_address_space *vm) in intel_dpt_pin() argument
126 struct drm_i915_private *i915 = vm->i915; in intel_dpt_pin()
127 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_pin()
175 void intel_dpt_unpin(struct i915_address_space *vm) in intel_dpt_unpin() argument
177 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_unpin()
247 struct i915_address_space *vm; in intel_dpt_create() local
285 vm = &dpt->vm; in intel_dpt_create()
287 vm->gt = to_gt(i915); in intel_dpt_create()
288 vm->i915 = i915; in intel_dpt_create()
289 vm->dma = i915->drm.dev; in intel_dpt_create()
290 vm->total = (size / sizeof(gen8_pte_t)) * I915_GTT_PAGE_SIZE; in intel_dpt_create()
291 vm->is_dpt = true; in intel_dpt_create()
293 i915_address_space_init(vm, VM_CLASS_DPT); in intel_dpt_create()
295 vm->insert_page = dpt_insert_page; in intel_dpt_create()
296 vm->clear_range = dpt_clear_range; in intel_dpt_create()
297 vm->insert_entries = dpt_insert_entries; in intel_dpt_create()
298 vm->cleanup = dpt_cleanup; in intel_dpt_create()
300 vm->vma_ops.bind_vma = dpt_bind_vma; in intel_dpt_create()
301 vm->vma_ops.unbind_vma = dpt_unbind_vma; in intel_dpt_create()
303 vm->pte_encode = vm->gt->ggtt->vm.pte_encode; in intel_dpt_create()
308 return &dpt->vm; in intel_dpt_create()
311 void intel_dpt_destroy(struct i915_address_space *vm) in intel_dpt_destroy() argument
313 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_destroy()
316 i915_vm_put(&dpt->vm); in intel_dpt_destroy()