Lines Matching +full:height +full:- +full:mm
41 if (vma->vm != ctx->vm) { in assert_vma()
46 if (vma->size != obj->base.size) { in assert_vma()
48 vma->size, obj->base.size); in assert_vma()
52 if (vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL) { in assert_vma()
54 vma->ggtt_view.type); in assert_vma()
74 if (vma->vm != vm) { in checked_vma_instance()
76 vma->vm, vm); in checked_vma_instance()
88 return ERR_PTR(-EINVAL); in checked_vma_instance()
91 if (i915_vma_compare(vma, vma->vm, in checked_vma_instance()
92 i915_vma_is_ggtt(vma) ? &vma->ggtt_view : NULL)) { in checked_vma_instance()
94 return ERR_PTR(-EINVAL); in checked_vma_instance()
99 return ERR_PTR(-EINVAL); in checked_vma_instance()
116 struct i915_address_space *vm = ctx->vm; in create_vmas()
126 return -EINVAL; in create_vmas()
148 struct drm_i915_private *i915 = ggtt->vm.i915; in igt_vma_create()
156 int err = -ENOMEM; in igt_vma_create()
163 for_each_prime_number(num_obj, ULONG_MAX - 1) { in igt_vma_create()
169 list_add(&obj->st_link, &objects); in igt_vma_create()
179 list_move(&ctx->link, &contexts); in igt_vma_create()
193 list_del_init(&ctx->link); in igt_vma_create()
205 list_del_init(&ctx->link); in igt_vma_create()
230 if (i915_vma_misplaced(vma, mode->size, 0, mode->flags)) in assert_pin_valid()
241 return result == -ENOSPC; in assert_pin_enospc()
249 return result == -EINVAL; in assert_pin_einval()
265 VALID(0, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
266 VALID(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
267 VALID(0, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->vm.total - 4096)), in igt_vma_pin1()
269 VALID(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_FIXED | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
270 INVALID(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_FIXED | ggtt->mappable_end), in igt_vma_pin1()
271 VALID(0, PIN_GLOBAL | PIN_OFFSET_FIXED | (ggtt->vm.total - 4096)), in igt_vma_pin1()
272 INVALID(0, PIN_GLOBAL | PIN_OFFSET_FIXED | ggtt->vm.total), in igt_vma_pin1()
277 VALID(ggtt->mappable_end - 4096, PIN_GLOBAL | PIN_MAPPABLE), in igt_vma_pin1()
278 VALID(ggtt->mappable_end, PIN_GLOBAL | PIN_MAPPABLE), in igt_vma_pin1()
279 NOSPACE(ggtt->mappable_end + 4096, PIN_GLOBAL | PIN_MAPPABLE), in igt_vma_pin1()
280 VALID(ggtt->vm.total - 4096, PIN_GLOBAL), in igt_vma_pin1()
281 VALID(ggtt->vm.total, PIN_GLOBAL), in igt_vma_pin1()
282 NOSPACE(ggtt->vm.total + 4096, PIN_GLOBAL), in igt_vma_pin1()
284 INVALID(8192, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_FIXED | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
285 INVALID(8192, PIN_GLOBAL | PIN_OFFSET_FIXED | (ggtt->vm.total - 4096)), in igt_vma_pin1()
286 INVALID(8192, PIN_GLOBAL | PIN_OFFSET_FIXED | (round_down(U64_MAX, PAGE_SIZE) - 4096)), in igt_vma_pin1()
288 VALID(8192, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
296 NOSPACE(0, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_BIAS | ggtt->mappable_end), in igt_vma_pin1()
297 NOSPACE(0, PIN_GLOBAL | PIN_OFFSET_BIAS | ggtt->vm.total), in igt_vma_pin1()
298 NOSPACE(8192, PIN_GLOBAL | PIN_MAPPABLE | PIN_OFFSET_BIAS | (ggtt->mappable_end - 4096)), in igt_vma_pin1()
299 NOSPACE(8192, PIN_GLOBAL | PIN_OFFSET_BIAS | (ggtt->vm.total - 4096)), in igt_vma_pin1()
309 int err = -EINVAL; in igt_vma_pin1()
315 GEM_BUG_ON(!drm_mm_clean(&ggtt->vm.mm)); in igt_vma_pin1()
317 obj = i915_gem_object_create_internal(ggtt->vm.i915, PAGE_SIZE); in igt_vma_pin1()
321 vma = checked_vma_instance(obj, &ggtt->vm, NULL); in igt_vma_pin1()
325 for (m = modes; m->assert; m++) { in igt_vma_pin1()
326 err = i915_vma_pin(vma, m->size, 0, m->flags); in igt_vma_pin1()
327 if (!m->assert(vma, m, err)) { in igt_vma_pin1()
329 m->assert == assert_pin_valid ? "Failed" : "Unexpectedly succeeded", in igt_vma_pin1()
330 (int)(m - modes), m->string, m->size, m->flags, in igt_vma_pin1()
334 err = -EINVAL; in igt_vma_pin1()
361 return (r->plane[n].stride * (r->plane[n].height - y - 1) + in rotated_index()
362 r->plane[n].offset + x); in rotated_index()
372 for (x = 0; x < r->plane[n].width; x++) { in assert_rotated()
373 for (y = 0; y < r->plane[n].height; y++) { in assert_rotated()
380 return ERR_PTR(-EINVAL); in assert_rotated()
390 return ERR_PTR(-EINVAL); in assert_rotated()
396 return ERR_PTR(-EINVAL); in assert_rotated()
411 return (r->plane[n].stride * y + in remapped_index()
412 r->plane[n].offset + x); in remapped_index()
424 for (y = 0; y < r->plane[n].height; y++) { in assert_remapped()
425 for (x = 0; x < r->plane[n].width; x++) { in assert_remapped()
432 return ERR_PTR(-EINVAL); in assert_remapped()
442 if (left < PAGE_SIZE || left & (PAGE_SIZE-1)) { in assert_remapped()
446 return ERR_PTR(-EINVAL); in assert_remapped()
452 return ERR_PTR(-EINVAL); in assert_remapped()
455 left -= PAGE_SIZE; in assert_remapped()
470 return a->width * a->height + b->width * b->height; in rotated_size()
476 struct i915_address_space *vm = &ggtt->vm; in igt_vma_rotate_remap()
479 { .width = 1, .height = 1, .stride = 1 }, in igt_vma_rotate_remap()
480 { .width = 2, .height = 2, .stride = 2 }, in igt_vma_rotate_remap()
481 { .width = 4, .height = 4, .stride = 4 }, in igt_vma_rotate_remap()
482 { .width = 8, .height = 8, .stride = 8 }, in igt_vma_rotate_remap()
484 { .width = 3, .height = 5, .stride = 3 }, in igt_vma_rotate_remap()
485 { .width = 3, .height = 5, .stride = 4 }, in igt_vma_rotate_remap()
486 { .width = 3, .height = 5, .stride = 5 }, in igt_vma_rotate_remap()
488 { .width = 5, .height = 3, .stride = 5 }, in igt_vma_rotate_remap()
489 { .width = 5, .height = 3, .stride = 7 }, in igt_vma_rotate_remap()
490 { .width = 5, .height = 3, .stride = 9 }, in igt_vma_rotate_remap()
492 { .width = 4, .height = 6, .stride = 6 }, in igt_vma_rotate_remap()
493 { .width = 6, .height = 4, .stride = 6 }, in igt_vma_rotate_remap()
502 int err = -ENOMEM; in igt_vma_rotate_remap()
508 obj = i915_gem_object_create_internal(vm->i915, max_pages * PAGE_SIZE); in igt_vma_rotate_remap()
513 for (a = planes; a->width; a++) { in igt_vma_rotate_remap()
514 for (b = planes + ARRAY_SIZE(planes); b-- != planes; ) { in igt_vma_rotate_remap()
518 max_offset = max(a->stride * a->height, in igt_vma_rotate_remap()
519 b->stride * b->height); in igt_vma_rotate_remap()
521 max_offset = max_pages - max_offset; in igt_vma_rotate_remap()
545 vma->size != rotated_size(a, b) * PAGE_SIZE) { in igt_vma_rotate_remap()
547 PAGE_SIZE * rotated_size(a, b), vma->size); in igt_vma_rotate_remap()
548 err = -EINVAL; in igt_vma_rotate_remap()
553 vma->size > rotated_size(a, b) * PAGE_SIZE) { in igt_vma_rotate_remap()
555 PAGE_SIZE * rotated_size(a, b), vma->size); in igt_vma_rotate_remap()
556 err = -EINVAL; in igt_vma_rotate_remap()
560 if (vma->pages->nents > rotated_size(a, b)) { in igt_vma_rotate_remap()
562 rotated_size(a, b), vma->pages->nents); in igt_vma_rotate_remap()
563 err = -EINVAL; in igt_vma_rotate_remap()
567 if (vma->node.size < vma->size) { in igt_vma_rotate_remap()
569 vma->size, vma->node.size); in igt_vma_rotate_remap()
570 err = -EINVAL; in igt_vma_rotate_remap()
574 if (vma->pages == obj->mm.pages) { in igt_vma_rotate_remap()
576 err = -EINVAL; in igt_vma_rotate_remap()
580 sg = vma->pages->sgl; in igt_vma_rotate_remap()
591 view.rotated.plane[0].height, in igt_vma_rotate_remap()
595 view.rotated.plane[1].height, in igt_vma_rotate_remap()
598 err = -EINVAL; in igt_vma_rotate_remap()
626 for_each_sgt_dma(dma, sgt, vma->pages) { in assert_partial()
642 size--; in assert_partial()
655 if (vma->size != size) { in assert_pin()
657 name, size, vma->size); in assert_pin()
661 if (vma->node.size < vma->size) { in assert_pin()
663 name, vma->size, vma->node.size); in assert_pin()
667 if (view && view->type != I915_GGTT_VIEW_NORMAL) { in assert_pin()
668 if (memcmp(&vma->ggtt_view, view, sizeof(*view))) { in assert_pin()
674 if (vma->pages == vma->obj->mm.pages) { in assert_pin()
680 if (vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL) { in assert_pin()
682 vma->ggtt_view.type); in assert_pin()
686 if (vma->pages != vma->obj->mm.pages) { in assert_pin()
698 struct i915_address_space *vm = &ggtt->vm; in igt_vma_partial()
710 int err = -ENOMEM; in igt_vma_partial()
716 obj = i915_gem_object_create_internal(vm->i915, npages * PAGE_SIZE); in igt_vma_partial()
720 for (p = phases; p->name; p++) { /* exercise both create/lookup */ in igt_vma_partial()
725 for_each_prime_number_from(offset, 0, npages - sz) { in igt_vma_partial()
745 if (!assert_pin(vma, &view, sz*PAGE_SIZE, p->name)) { in igt_vma_partial()
747 p->name, offset, sz); in igt_vma_partial()
748 err = -EINVAL; in igt_vma_partial()
754 p->name, offset, sz); in igt_vma_partial()
755 err = -EINVAL; in igt_vma_partial()
767 list_for_each_entry(vma, &obj->vma.list, obj_link) in igt_vma_partial()
770 pr_err("(%s) All partial vma were not recorded on the obj->vma_list: found %u, expected %u\n", in igt_vma_partial()
771 p->name, count, nvma); in igt_vma_partial()
772 err = -EINVAL; in igt_vma_partial()
787 if (!assert_pin(vma, NULL, obj->base.size, p->name)) { in igt_vma_partial()
788 pr_err("(%s) inconsistent full pin\n", p->name); in igt_vma_partial()
789 err = -EINVAL; in igt_vma_partial()
796 list_for_each_entry(vma, &obj->vma.list, obj_link) in igt_vma_partial()
799 pr_err("(%s) allocated an extra full vma!\n", p->name); in igt_vma_partial()
800 err = -EINVAL; in igt_vma_partial()
825 return -ENOMEM; in i915_vma_mock_selftests()
829 err = -ENOMEM; in i915_vma_mock_selftests()
834 mutex_lock(&i915->drm.struct_mutex); in i915_vma_mock_selftests()
837 mutex_unlock(&i915->drm.struct_mutex); in i915_vma_mock_selftests()
844 drm_dev_put(&i915->drm); in i915_vma_mock_selftests()
852 { .width = 1, .height = 1, .stride = 1 }, in igt_vma_remapped_gtt()
853 { .width = 2, .height = 2, .stride = 2 }, in igt_vma_remapped_gtt()
854 { .width = 4, .height = 4, .stride = 4 }, in igt_vma_remapped_gtt()
855 { .width = 8, .height = 8, .stride = 8 }, in igt_vma_remapped_gtt()
857 { .width = 3, .height = 5, .stride = 3 }, in igt_vma_remapped_gtt()
858 { .width = 3, .height = 5, .stride = 4 }, in igt_vma_remapped_gtt()
859 { .width = 3, .height = 5, .stride = 5 }, in igt_vma_remapped_gtt()
861 { .width = 5, .height = 3, .stride = 5 }, in igt_vma_remapped_gtt()
862 { .width = 5, .height = 3, .stride = 7 }, in igt_vma_remapped_gtt()
863 { .width = 5, .height = 3, .stride = 9 }, in igt_vma_remapped_gtt()
865 { .width = 4, .height = 6, .stride = 6 }, in igt_vma_remapped_gtt()
866 { .width = 6, .height = 4, .stride = 6 }, in igt_vma_remapped_gtt()
882 mutex_lock(&i915->drm.struct_mutex); in igt_vma_remapped_gtt()
884 wakeref = intel_runtime_pm_get(&i915->runtime_pm); in igt_vma_remapped_gtt()
887 for (p = planes; p->width; p++) { in igt_vma_remapped_gtt()
909 GEM_BUG_ON(vma->ggtt_view.type != *t); in igt_vma_remapped_gtt()
918 for (y = 0 ; y < p->height; y++) { in igt_vma_remapped_gtt()
919 for (x = 0 ; x < p->width; x++) { in igt_vma_remapped_gtt()
924 offset = (x * p->height + y) * PAGE_SIZE; in igt_vma_remapped_gtt()
926 offset = (y * p->width + x) * PAGE_SIZE; in igt_vma_remapped_gtt()
940 GEM_BUG_ON(vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL); in igt_vma_remapped_gtt()
949 for (y = 0 ; y < p->height; y++) { in igt_vma_remapped_gtt()
950 for (x = 0 ; x < p->width; x++) { in igt_vma_remapped_gtt()
978 intel_runtime_pm_put(&i915->runtime_pm, wakeref); in igt_vma_remapped_gtt()
979 mutex_unlock(&i915->drm.struct_mutex); in igt_vma_remapped_gtt()