Lines Matching refs:bman
39 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_alloc() local
41 struct drm_buddy *mm = &bman->mm; in i915_ttm_buddy_man_alloc()
68 min_page_size = bman->default_page_size; in i915_ttm_buddy_man_alloc()
94 mutex_lock(&bman->lock); in i915_ttm_buddy_man_alloc()
95 if (lpfn <= bman->visible_size && n_pages > bman->visible_avail) { in i915_ttm_buddy_man_alloc()
96 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_alloc()
118 if (lpfn <= bman->visible_size) { in i915_ttm_buddy_man_alloc()
127 if (start < bman->visible_size) { in i915_ttm_buddy_man_alloc()
132 min(end, bman->visible_size) - start; in i915_ttm_buddy_man_alloc()
138 bman->visible_avail -= bman_res->used_visible_size; in i915_ttm_buddy_man_alloc()
140 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_alloc()
144 else if (lpfn <= bman->visible_size) in i915_ttm_buddy_man_alloc()
147 bman_res->base.start = bman->visible_size; in i915_ttm_buddy_man_alloc()
154 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_alloc()
165 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_free() local
167 mutex_lock(&bman->lock); in i915_ttm_buddy_man_free()
168 drm_buddy_free_list(&bman->mm, &bman_res->blocks); in i915_ttm_buddy_man_free()
169 bman->visible_avail += bman_res->used_visible_size; in i915_ttm_buddy_man_free()
170 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_free()
182 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_intersects() local
183 struct drm_buddy *mm = &bman->mm; in i915_ttm_buddy_man_intersects()
220 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_compatible() local
221 struct drm_buddy *mm = &bman->mm; in i915_ttm_buddy_man_compatible()
250 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_debug() local
253 mutex_lock(&bman->lock); in i915_ttm_buddy_man_debug()
255 bman->default_page_size >> 10); in i915_ttm_buddy_man_debug()
257 (u64)bman->visible_avail << PAGE_SHIFT >> 20); in i915_ttm_buddy_man_debug()
259 (u64)bman->visible_size << PAGE_SHIFT >> 20); in i915_ttm_buddy_man_debug()
261 (u64)bman->visible_reserved << PAGE_SHIFT >> 20); in i915_ttm_buddy_man_debug()
263 drm_buddy_print(&bman->mm, printer); in i915_ttm_buddy_man_debug()
266 list_for_each_entry(block, &bman->reserved, link) in i915_ttm_buddy_man_debug()
267 drm_buddy_block_print(&bman->mm, block, printer); in i915_ttm_buddy_man_debug()
268 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_debug()
313 struct i915_ttm_buddy_manager *bman; in i915_ttm_buddy_man_init() local
316 bman = kzalloc(sizeof(*bman), GFP_KERNEL); in i915_ttm_buddy_man_init()
317 if (!bman) in i915_ttm_buddy_man_init()
320 err = drm_buddy_init(&bman->mm, size, chunk_size); in i915_ttm_buddy_man_init()
324 mutex_init(&bman->lock); in i915_ttm_buddy_man_init()
325 INIT_LIST_HEAD(&bman->reserved); in i915_ttm_buddy_man_init()
327 bman->default_page_size = default_page_size; in i915_ttm_buddy_man_init()
328 bman->visible_size = visible_size >> PAGE_SHIFT; in i915_ttm_buddy_man_init()
329 bman->visible_avail = bman->visible_size; in i915_ttm_buddy_man_init()
331 man = &bman->manager; in i915_ttm_buddy_man_init()
334 ttm_resource_manager_init(man, bdev, bman->mm.size >> PAGE_SHIFT); in i915_ttm_buddy_man_init()
342 kfree(bman); in i915_ttm_buddy_man_init()
359 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_fini() local
360 struct drm_buddy *mm = &bman->mm; in i915_ttm_buddy_man_fini()
371 mutex_lock(&bman->lock); in i915_ttm_buddy_man_fini()
372 drm_buddy_free_list(mm, &bman->reserved); in i915_ttm_buddy_man_fini()
374 bman->visible_avail += bman->visible_reserved; in i915_ttm_buddy_man_fini()
375 WARN_ON_ONCE(bman->visible_avail != bman->visible_size); in i915_ttm_buddy_man_fini()
376 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_fini()
379 kfree(bman); in i915_ttm_buddy_man_fini()
397 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_reserve() local
398 struct drm_buddy *mm = &bman->mm; in i915_ttm_buddy_man_reserve()
405 mutex_lock(&bman->lock); in i915_ttm_buddy_man_reserve()
409 &bman->reserved, in i915_ttm_buddy_man_reserve()
412 if (fpfn < bman->visible_size) { in i915_ttm_buddy_man_reserve()
414 unsigned long visible = min(lpfn, bman->visible_size) - fpfn; in i915_ttm_buddy_man_reserve()
416 bman->visible_reserved += visible; in i915_ttm_buddy_man_reserve()
417 bman->visible_avail -= visible; in i915_ttm_buddy_man_reserve()
419 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_reserve()
431 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_visible_size() local
433 return bman->visible_size; in i915_ttm_buddy_man_visible_size()
448 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_avail() local
450 mutex_lock(&bman->lock); in i915_ttm_buddy_man_avail()
451 *avail = bman->mm.avail >> PAGE_SHIFT; in i915_ttm_buddy_man_avail()
452 *visible_avail = bman->visible_avail; in i915_ttm_buddy_man_avail()
453 mutex_unlock(&bman->lock); in i915_ttm_buddy_man_avail()
460 struct i915_ttm_buddy_manager *bman = to_buddy_manager(man); in i915_ttm_buddy_man_force_visible_size() local
462 bman->visible_size = size; in i915_ttm_buddy_man_force_visible_size()