Lines Matching refs:vm

19 	struct i915_address_space vm;  member
26 #define i915_is_dpt(vm) ((vm)->is_dpt) argument
29 i915_vm_to_dpt(struct i915_address_space *vm) in i915_vm_to_dpt() argument
31 BUILD_BUG_ON(offsetof(struct i915_dpt, vm)); in i915_vm_to_dpt()
32 drm_WARN_ON(&vm->i915->drm, !i915_is_dpt(vm)); in i915_vm_to_dpt()
33 return container_of(vm, struct i915_dpt, vm); in i915_vm_to_dpt()
36 #define dpt_total_entries(dpt) ((dpt)->vm.total >> PAGE_SHIFT)
43 static void dpt_insert_page(struct i915_address_space *vm, in dpt_insert_page() argument
49 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_insert_page()
53 vm->pte_encode(addr, pat_index, flags)); in dpt_insert_page()
56 static void dpt_insert_entries(struct i915_address_space *vm, in dpt_insert_entries() argument
61 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_insert_entries()
63 const gen8_pte_t pte_encode = vm->pte_encode(0, pat_index, flags); in dpt_insert_entries()
78 static void dpt_clear_range(struct i915_address_space *vm, in dpt_clear_range() argument
83 static void dpt_bind_vma(struct i915_address_space *vm, in dpt_bind_vma() argument
96 if (vm->has_read_only && vma_res->bi.readonly) in dpt_bind_vma()
101 vm->insert_entries(vm, vma_res, pat_index, pte_flags); in dpt_bind_vma()
113 static void dpt_unbind_vma(struct i915_address_space *vm, in dpt_unbind_vma() argument
116 vm->clear_range(vm, vma_res->start, vma_res->vma_size); in dpt_unbind_vma()
119 static void dpt_cleanup(struct i915_address_space *vm) in dpt_cleanup() argument
121 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in dpt_cleanup()
126 struct i915_vma *intel_dpt_pin_to_ggtt(struct i915_address_space *vm, in intel_dpt_pin_to_ggtt() argument
129 struct drm_i915_private *i915 = vm->i915; in intel_dpt_pin_to_ggtt()
131 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_pin_to_ggtt()
179 void intel_dpt_unpin_from_ggtt(struct i915_address_space *vm) in intel_dpt_unpin_from_ggtt() argument
181 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_unpin_from_ggtt()
251 struct i915_address_space *vm; in intel_dpt_create() local
289 vm = &dpt->vm; in intel_dpt_create()
291 vm->gt = to_gt(i915); in intel_dpt_create()
292 vm->i915 = i915; in intel_dpt_create()
293 vm->dma = i915->drm.dev; in intel_dpt_create()
294 vm->total = (size / sizeof(gen8_pte_t)) * I915_GTT_PAGE_SIZE; in intel_dpt_create()
295 vm->is_dpt = true; in intel_dpt_create()
297 i915_address_space_init(vm, VM_CLASS_DPT); in intel_dpt_create()
299 vm->insert_page = dpt_insert_page; in intel_dpt_create()
300 vm->clear_range = dpt_clear_range; in intel_dpt_create()
301 vm->insert_entries = dpt_insert_entries; in intel_dpt_create()
302 vm->cleanup = dpt_cleanup; in intel_dpt_create()
304 vm->vma_ops.bind_vma = dpt_bind_vma; in intel_dpt_create()
305 vm->vma_ops.unbind_vma = dpt_unbind_vma; in intel_dpt_create()
307 vm->pte_encode = vm->gt->ggtt->vm.pte_encode; in intel_dpt_create()
312 return &dpt->vm; in intel_dpt_create()
315 void intel_dpt_destroy(struct i915_address_space *vm) in intel_dpt_destroy() argument
317 struct i915_dpt *dpt = i915_vm_to_dpt(vm); in intel_dpt_destroy()
320 i915_vm_put(&dpt->vm); in intel_dpt_destroy()