Lines Matching full:mem

26 	struct amdxdna_mem *mem = &abo->mem;  in amdxdna_gem_insert_node_locked()  local
33 mem->size, align, in amdxdna_gem_insert_node_locked()
40 mem->dev_addr = abo->mm_node.start; in amdxdna_gem_insert_node_locked()
41 offset = mem->dev_addr - abo->dev_heap->mem.dev_addr; in amdxdna_gem_insert_node_locked()
42 mem->userptr = abo->dev_heap->mem.userptr + offset; in amdxdna_gem_insert_node_locked()
43 mem->pages = &abo->dev_heap->base.pages[offset >> PAGE_SHIFT]; in amdxdna_gem_insert_node_locked()
44 mem->nr_pages = mem->size >> PAGE_SHIFT; in amdxdna_gem_insert_node_locked()
47 mem->kva = vmap(mem->pages, mem->nr_pages, VM_MAP, PAGE_KERNEL); in amdxdna_gem_insert_node_locked()
48 if (!mem->kva) { in amdxdna_gem_insert_node_locked()
62 struct iosys_map map = IOSYS_MAP_INIT_VADDR(abo->mem.kva); in amdxdna_gem_obj_free()
64 XDNA_DBG(xdna, "BO type %d xdna_addr 0x%llx", abo->type, abo->mem.dev_addr); in amdxdna_gem_obj_free()
73 vunmap(abo->mem.kva); in amdxdna_gem_obj_free()
98 mem.notifier); in amdxdna_hmm_invalidate()
102 abo->mem.userptr, abo->mem.size, abo->type); in amdxdna_hmm_invalidate()
123 mmu_interval_notifier_remove(&abo->mem.notifier); in amdxdna_hmm_unregister()
124 kvfree(abo->mem.pfns); in amdxdna_hmm_unregister()
125 abo->mem.pfns = NULL; in amdxdna_hmm_unregister()
138 if (abo->mem.pfns) in amdxdna_hmm_register()
142 abo->mem.pfns = kvcalloc(nr_pages, sizeof(*abo->mem.pfns), in amdxdna_hmm_register()
144 if (!abo->mem.pfns) in amdxdna_hmm_register()
147 ret = mmu_interval_notifier_insert_locked(&abo->mem.notifier, in amdxdna_hmm_register()
154 kvfree(abo->mem.pfns); in amdxdna_hmm_register()
156 abo->mem.userptr = addr; in amdxdna_hmm_register()
239 abo->mem.userptr = AMDXDNA_INVALID_ADDR; in amdxdna_gem_create_obj()
240 abo->mem.dev_addr = AMDXDNA_INVALID_ADDR; in amdxdna_gem_create_obj()
241 abo->mem.size = size; in amdxdna_gem_create_obj()
318 abo->mem.dev_addr = client->xdna->dev_info->dev_mem_base; in amdxdna_drm_create_dev_heap()
319 drm_mm_init(&abo->mm, abo->mem.dev_addr, abo->mem.size); in amdxdna_drm_create_dev_heap()
350 if (heap->mem.userptr == AMDXDNA_INVALID_ADDR) { in amdxdna_drm_alloc_dev_bo()
356 if (args->size > heap->mem.size) { in amdxdna_drm_alloc_dev_bo()
358 args->size, heap->mem.size); in amdxdna_drm_alloc_dev_bo()
425 abo->mem.kva = map.vaddr; in amdxdna_drm_create_cmd_bo()
473 args->handle, args->type, abo->mem.userptr, in amdxdna_drm_create_bo_ioctl()
474 abo->mem.dev_addr, abo->mem.size); in amdxdna_drm_create_bo_ioctl()
565 args->vaddr = abo->mem.userptr; in amdxdna_drm_get_bo_info_ioctl()
566 args->xdna_addr = abo->mem.dev_addr; in amdxdna_drm_get_bo_info_ioctl()
610 drm_clflush_pages(abo->mem.pages, abo->mem.nr_pages); in amdxdna_drm_sync_bo_ioctl()