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_to_ggtt(struct i915_address_space *vm, in intel_dpt_pin_to_ggtt() argument
127 struct drm_i915_private *i915 = vm->i915; in intel_dpt_pin_to_ggtt()
129 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_pin_to_ggtt()
177 void intel_dpt_unpin_from_ggtt(struct i915_address_space *vm) in intel_dpt_unpin_from_ggtt() argument
179 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_unpin_from_ggtt()
249 struct i915_address_space *vm; in intel_dpt_create() local
287 vm = &dpt->vm; in intel_dpt_create()
289 vm->gt = to_gt(i915); in intel_dpt_create()
290 vm->i915 = i915; in intel_dpt_create()
291 vm->dma = i915->drm.dev; in intel_dpt_create()
292 vm->total = (size / sizeof(gen8_pte_t)) * I915_GTT_PAGE_SIZE; in intel_dpt_create()
293 vm->is_dpt = true; in intel_dpt_create()
295 i915_address_space_init(vm, VM_CLASS_DPT); in intel_dpt_create()
297 vm->insert_page = dpt_insert_page; in intel_dpt_create()
298 vm->clear_range = dpt_clear_range; in intel_dpt_create()
299 vm->insert_entries = dpt_insert_entries; in intel_dpt_create()
300 vm->cleanup = dpt_cleanup; in intel_dpt_create()
302 vm->vma_ops.bind_vma = dpt_bind_vma; in intel_dpt_create()
303 vm->vma_ops.unbind_vma = dpt_unbind_vma; in intel_dpt_create()
305 vm->pte_encode = vm->gt->ggtt->vm.pte_encode; in intel_dpt_create()
310 return &dpt->vm; in intel_dpt_create()
313 void intel_dpt_destroy(struct i915_address_space *vm) in intel_dpt_destroy() argument
315 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_destroy()
318 i915_vm_put(&dpt->vm); in intel_dpt_destroy()