Lines Matching +full:vm +full:- +full:map

42 	if (vma->vm != rcu_access_pointer(ctx->vm)) {  in assert_vma()
43 pr_err("VMA created with wrong VM\n"); in assert_vma()
47 if (vma->size != obj->base.size) { in assert_vma()
49 vma->size, obj->base.size); in assert_vma()
53 if (vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL) { in assert_vma()
55 vma->ggtt_view.type); in assert_vma()
64 struct i915_address_space *vm, in checked_vma_instance() argument
70 vma = i915_vma_instance(obj, vm, view); in checked_vma_instance()
75 if (vma->vm != vm) { in checked_vma_instance()
76 pr_err("VMA's vm [%p] does not match request [%p]\n", in checked_vma_instance()
77 vma->vm, vm); in checked_vma_instance()
81 if (i915_is_ggtt(vm) != i915_vma_is_ggtt(vma)) { in checked_vma_instance()
83 i915_vma_is_ggtt(vma), i915_is_ggtt(vm)); in checked_vma_instance()
87 if (i915_vma_compare(vma, vm, view)) { in checked_vma_instance()
89 return ERR_PTR(-EINVAL); in checked_vma_instance()
92 if (i915_vma_compare(vma, vma->vm, in checked_vma_instance()
93 i915_vma_is_ggtt(vma) ? &vma->ggtt_view : NULL)) { in checked_vma_instance()
95 return ERR_PTR(-EINVAL); in checked_vma_instance()
100 return ERR_PTR(-EINVAL); in checked_vma_instance()
117 struct i915_address_space *vm; in create_vmas() local
121 vm = i915_gem_context_get_vm_rcu(ctx); in create_vmas()
122 vma = checked_vma_instance(obj, vm, NULL); in create_vmas()
123 i915_vm_put(vm); in create_vmas()
129 return -EINVAL; in create_vmas()
151 struct drm_i915_private *i915 = ggtt->vm.i915; in igt_vma_create()
159 int err = -ENOMEM; in igt_vma_create()
166 for_each_prime_number(num_obj, ULONG_MAX - 1) { in igt_vma_create()
172 list_add(&obj->st_link, &objects); in igt_vma_create()
182 list_move(&ctx->link, &contexts); in igt_vma_create()
196 list_del_init(&ctx->link); in igt_vma_create()
208 list_del_init(&ctx->link); in igt_vma_create()
233 if (i915_vma_misplaced(vma, mode->size, 0, mode->flags)) in assert_pin_valid()
244 return result == -ENOSPC; in assert_pin_enospc()
252 return result == -EINVAL; in assert_pin_einval()
268 VALID(0, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
269 VALID(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
270 VALID(0, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->vm.total - 4096)), in igt_vma_pin1()
272 VALID(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_FIXED | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
273 INVALID(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_FIXED | ggtt->mappable_end), in igt_vma_pin1()
274 VALID(0, PIN_GLOBAL | PIN_OFFSET_FIXED | (ggtt->vm.total - 4096)), in igt_vma_pin1()
275 INVALID(0, PIN_GLOBAL | PIN_OFFSET_FIXED | ggtt->vm.total), in igt_vma_pin1()
280 VALID(ggtt->mappable_end - 4096, PIN_GLOBAL | PIN_MAPPABLE), in igt_vma_pin1()
281 VALID(ggtt->mappable_end, PIN_GLOBAL | PIN_MAPPABLE), in igt_vma_pin1()
282 NOSPACE(ggtt->mappable_end + 4096, PIN_GLOBAL | PIN_MAPPABLE), in igt_vma_pin1()
283 VALID(ggtt->vm.total - 4096, PIN_GLOBAL), in igt_vma_pin1()
284 VALID(ggtt->vm.total, PIN_GLOBAL), in igt_vma_pin1()
285 NOSPACE(ggtt->vm.total + 4096, PIN_GLOBAL), in igt_vma_pin1()
287 INVALID(8192, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_FIXED | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
288 INVALID(8192, PIN_GLOBAL | PIN_OFFSET_FIXED | (ggtt->vm.total - 4096)), in igt_vma_pin1()
289 INVALID(8192, PIN_GLOBAL | PIN_OFFSET_FIXED | (round_down(U64_MAX, PAGE_SIZE) - 4096)), in igt_vma_pin1()
291 VALID(8192, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
299 NOSPACE(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_BIAS | ggtt->mappable_end), in igt_vma_pin1()
300 NOSPACE(0, PIN_GLOBAL | PIN_OFFSET_BIAS | ggtt->vm.total), in igt_vma_pin1()
301 NOSPACE(8192, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
302 NOSPACE(8192, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->vm.total - 4096)), in igt_vma_pin1()
312 int err = -EINVAL; in igt_vma_pin1()
318 GEM_BUG_ON(!drm_mm_clean(&ggtt->vm.mm)); in igt_vma_pin1()
320 obj = i915_gem_object_create_internal(ggtt->vm.i915, PAGE_SIZE); in igt_vma_pin1()
324 vma = checked_vma_instance(obj, &ggtt->vm, NULL); in igt_vma_pin1()
328 for (m = modes; m->assert; m++) { in igt_vma_pin1()
329 err = i915_vma_pin(vma, m->size, 0, m->flags); in igt_vma_pin1()
330 if (!m->assert(vma, m, err)) { in igt_vma_pin1()
332 m->assert == assert_pin_valid ? "Failed" : "Unexpectedly succeeded", in igt_vma_pin1()
333 (int)(m - modes), m->string, m->size, m->flags, in igt_vma_pin1()
337 err = -EINVAL; in igt_vma_pin1()
364 return (r->plane[n].src_stride * (r->plane[n].height - y - 1) + in rotated_index()
365 r->plane[n].offset + x); in rotated_index()
375 for (x = 0; x < r->plane[n].width; x++) { in assert_rotated()
378 for (y = 0; y < r->plane[n].height; y++) { in assert_rotated()
385 return ERR_PTR(-EINVAL); in assert_rotated()
395 return ERR_PTR(-EINVAL); in assert_rotated()
401 return ERR_PTR(-EINVAL); in assert_rotated()
407 left = (r->plane[n].dst_stride - y) * PAGE_SIZE; in assert_rotated()
415 return ERR_PTR(-EINVAL); in assert_rotated()
421 return ERR_PTR(-EINVAL); in assert_rotated()
427 return ERR_PTR(-EINVAL); in assert_rotated()
441 return (r->plane[n].src_stride * y + in remapped_index()
442 r->plane[n].offset + x); in remapped_index()
454 for (y = 0; y < r->plane[n].height; y++) { in assert_remapped()
455 for (x = 0; x < r->plane[n].width; x++) { in assert_remapped()
462 return ERR_PTR(-EINVAL); in assert_remapped()
472 if (left < PAGE_SIZE || left & (PAGE_SIZE-1)) { in assert_remapped()
476 return ERR_PTR(-EINVAL); in assert_remapped()
482 return ERR_PTR(-EINVAL); in assert_remapped()
485 left -= PAGE_SIZE; in assert_remapped()
497 return ERR_PTR(-EINVAL); in assert_remapped()
500 left = (r->plane[n].dst_stride - r->plane[n].width) * PAGE_SIZE; in assert_remapped()
508 return ERR_PTR(-EINVAL); in assert_remapped()
515 return ERR_PTR(-EINVAL); in assert_remapped()
522 return ERR_PTR(-EINVAL); in assert_remapped()
538 return a->dst_stride * a->width + b->dst_stride * b->width; in remapped_size()
540 return a->dst_stride * a->height + b->dst_stride * b->height; in remapped_size()
546 struct i915_address_space *vm = &ggtt->vm; in igt_vma_rotate_remap() local
577 int err = -ENOMEM; in igt_vma_rotate_remap()
583 obj = i915_gem_object_create_internal(vm->i915, max_pages * PAGE_SIZE); in igt_vma_rotate_remap()
588 for (a = planes; a->width; a++) { in igt_vma_rotate_remap()
589 for (b = planes + ARRAY_SIZE(planes); b-- != planes; ) { in igt_vma_rotate_remap()
601 max_offset = max_pages - max_offset; in igt_vma_rotate_remap()
618 vma = checked_vma_instance(obj, vm, &view); in igt_vma_rotate_remap()
633 vma->size != expected_pages * PAGE_SIZE) { in igt_vma_rotate_remap()
635 PAGE_SIZE * expected_pages, vma->size); in igt_vma_rotate_remap()
636 err = -EINVAL; in igt_vma_rotate_remap()
641 vma->size > expected_pages * PAGE_SIZE) { in igt_vma_rotate_remap()
643 PAGE_SIZE * expected_pages, vma->size); in igt_vma_rotate_remap()
644 err = -EINVAL; in igt_vma_rotate_remap()
648 if (vma->pages->nents > expected_pages) { in igt_vma_rotate_remap()
650 expected_pages, vma->pages->nents); in igt_vma_rotate_remap()
651 err = -EINVAL; in igt_vma_rotate_remap()
655 if (vma->node.size < vma->size) { in igt_vma_rotate_remap()
657 vma->size, vma->node.size); in igt_vma_rotate_remap()
658 err = -EINVAL; in igt_vma_rotate_remap()
662 if (vma->pages == obj->mm.pages) { in igt_vma_rotate_remap()
664 err = -EINVAL; in igt_vma_rotate_remap()
668 sg = vma->pages->sgl; in igt_vma_rotate_remap()
688 err = -EINVAL; in igt_vma_rotate_remap()
716 for_each_sgt_daddr(dma, sgt, vma->pages) { in assert_partial()
732 size--; in assert_partial()
745 if (vma->size != size) { in assert_pin()
747 name, size, vma->size); in assert_pin()
751 if (vma->node.size < vma->size) { in assert_pin()
753 name, vma->size, vma->node.size); in assert_pin()
757 if (view && view->type != I915_GGTT_VIEW_NORMAL) { in assert_pin()
758 if (memcmp(&vma->ggtt_view, view, sizeof(*view))) { in assert_pin()
764 if (vma->pages == vma->obj->mm.pages) { in assert_pin()
770 if (vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL) { in assert_pin()
772 vma->ggtt_view.type); in assert_pin()
776 if (vma->pages != vma->obj->mm.pages) { in assert_pin()
788 struct i915_address_space *vm = &ggtt->vm; in igt_vma_partial() local
800 int err = -ENOMEM; in igt_vma_partial()
806 obj = i915_gem_object_create_internal(vm->i915, npages * PAGE_SIZE); in igt_vma_partial()
810 for (p = phases; p->name; p++) { /* exercise both create/lookup */ in igt_vma_partial()
815 for_each_prime_number_from(offset, 0, npages - sz) { in igt_vma_partial()
825 vma = checked_vma_instance(obj, vm, &view); in igt_vma_partial()
835 if (!assert_pin(vma, &view, sz*PAGE_SIZE, p->name)) { in igt_vma_partial()
837 p->name, offset, sz); in igt_vma_partial()
838 err = -EINVAL; in igt_vma_partial()
844 p->name, offset, sz); in igt_vma_partial()
845 err = -EINVAL; in igt_vma_partial()
857 list_for_each_entry(vma, &obj->vma.list, obj_link) in igt_vma_partial()
860 pr_err("(%s) All partial vma were not recorded on the obj->vma_list: found %u, expected %u\n", in igt_vma_partial()
861 p->name, count, nvma); in igt_vma_partial()
862 err = -EINVAL; in igt_vma_partial()
867 vma = checked_vma_instance(obj, vm, NULL); in igt_vma_partial()
877 if (!assert_pin(vma, NULL, obj->base.size, p->name)) { in igt_vma_partial()
878 pr_err("(%s) inconsistent full pin\n", p->name); in igt_vma_partial()
879 err = -EINVAL; in igt_vma_partial()
886 list_for_each_entry(vma, &obj->vma.list, obj_link) in igt_vma_partial()
889 pr_err("(%s) allocated an extra full vma!\n", p->name); in igt_vma_partial()
890 err = -EINVAL; in igt_vma_partial()
915 return -ENOMEM; in i915_vma_mock_selftests()
919 err = -ENOMEM; in i915_vma_mock_selftests()
970 if (!i915_ggtt_has_aperture(&i915->ggtt)) in igt_vma_remapped_gtt()
977 wakeref = intel_runtime_pm_get(&i915->runtime_pm); in igt_vma_remapped_gtt()
980 for (p = planes; p->width; p++) { in igt_vma_remapped_gtt()
987 u32 __iomem *map; in igt_vma_remapped_gtt() local
998 p->height : p->width; in igt_vma_remapped_gtt()
1006 GEM_BUG_ON(vma->ggtt_view.type != *t); in igt_vma_remapped_gtt()
1008 map = i915_vma_pin_iomap(vma); in igt_vma_remapped_gtt()
1010 if (IS_ERR(map)) { in igt_vma_remapped_gtt()
1011 err = PTR_ERR(map); in igt_vma_remapped_gtt()
1025 iowrite32(val, &map[offset / sizeof(*map)]); in igt_vma_remapped_gtt()
1037 GEM_BUG_ON(vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL); in igt_vma_remapped_gtt()
1039 map = i915_vma_pin_iomap(vma); in igt_vma_remapped_gtt()
1041 if (IS_ERR(map)) { in igt_vma_remapped_gtt()
1042 err = PTR_ERR(map); in igt_vma_remapped_gtt()
1058 val = ioread32(&map[offset / sizeof(*map)]); in igt_vma_remapped_gtt()
1064 err = -EINVAL; in igt_vma_remapped_gtt()
1076 intel_runtime_pm_put(&i915->runtime_pm, wakeref); in igt_vma_remapped_gtt()