• Home
  • Raw
  • Download

Lines Matching refs:mgr

47 drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,  in amdgpu_vamgr_init()  argument
50 mgr->va_offset = start; in amdgpu_vamgr_init()
51 mgr->va_max = max; in amdgpu_vamgr_init()
52 mgr->va_alignment = alignment; in amdgpu_vamgr_init()
54 list_inithead(&mgr->va_holes); in amdgpu_vamgr_init()
55 pthread_mutex_init(&mgr->bo_va_mutex, NULL); in amdgpu_vamgr_init()
58 drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr) in amdgpu_vamgr_deinit() argument
61 LIST_FOR_EACH_ENTRY_SAFE(hole, tmp, &mgr->va_holes, list) { in amdgpu_vamgr_deinit()
65 pthread_mutex_destroy(&mgr->bo_va_mutex); in amdgpu_vamgr_deinit()
69 amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size, in amdgpu_vamgr_find_va() argument
75 alignment = MAX2(alignment, mgr->va_alignment); in amdgpu_vamgr_find_va()
76 size = ALIGN(size, mgr->va_alignment); in amdgpu_vamgr_find_va()
81 pthread_mutex_lock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
84 LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) { in amdgpu_vamgr_find_va()
104 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
116 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
121 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
127 if (base_required < mgr->va_offset) { in amdgpu_vamgr_find_va()
128 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
131 offset = mgr->va_offset; in amdgpu_vamgr_find_va()
132 waste = base_required - mgr->va_offset; in amdgpu_vamgr_find_va()
134 offset = mgr->va_offset; in amdgpu_vamgr_find_va()
139 if (offset + waste + size > mgr->va_max) { in amdgpu_vamgr_find_va()
140 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
148 list_add(&n->list, &mgr->va_holes); in amdgpu_vamgr_find_va()
152 mgr->va_offset += size + waste; in amdgpu_vamgr_find_va()
153 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_find_va()
158 amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size) in amdgpu_vamgr_free_va() argument
165 size = ALIGN(size, mgr->va_alignment); in amdgpu_vamgr_free_va()
167 pthread_mutex_lock(&mgr->bo_va_mutex); in amdgpu_vamgr_free_va()
168 if ((va + size) == mgr->va_offset) { in amdgpu_vamgr_free_va()
169 mgr->va_offset = va; in amdgpu_vamgr_free_va()
171 if (!LIST_IS_EMPTY(&mgr->va_holes)) { in amdgpu_vamgr_free_va()
172 hole = container_of(mgr->va_holes.next, hole, list); in amdgpu_vamgr_free_va()
174 mgr->va_offset = hole->offset; in amdgpu_vamgr_free_va()
182 hole = container_of(&mgr->va_holes, hole, list); in amdgpu_vamgr_free_va()
183 LIST_FOR_EACH_ENTRY(next, &mgr->va_holes, list) { in amdgpu_vamgr_free_va()
189 if (&hole->list != &mgr->va_holes) { in amdgpu_vamgr_free_va()
196 && &next->list != &mgr->va_holes in amdgpu_vamgr_free_va()
207 if (next != hole && &next->list != &mgr->va_holes && in amdgpu_vamgr_free_va()
224 pthread_mutex_unlock(&mgr->bo_va_mutex); in amdgpu_vamgr_free_va()