Lines Matching refs:bo
35 suballoc->bo = NULL;
42 if (suballoc->bo)
43 tu_bo_finish(suballoc->dev, suballoc->bo);
53 struct tu_bo *bo = suballoc->bo;
54 if (bo) {
56 if (offset + size <= bo->size) {
57 suballoc_bo->bo = tu_bo_get_ref(bo);
58 suballoc_bo->iova = bo->iova + offset;
64 tu_bo_finish(suballoc->dev, bo);
65 suballoc->bo = NULL;
74 suballoc->bo = suballoc->cached_bo;
81 if (!suballoc->bo) {
82 VkResult result = tu_bo_init_new(suballoc->dev, &suballoc->bo,
89 VkResult result = tu_bo_map(suballoc->dev, suballoc->bo);
91 tu_bo_finish(suballoc->dev, suballoc->bo);
95 suballoc_bo->bo = tu_bo_get_ref(suballoc->bo);
96 suballoc_bo->iova = suballoc_bo->bo->iova;
104 tu_suballoc_bo_free(struct tu_suballocator *suballoc, struct tu_suballoc_bo *bo)
106 if (!bo->bo)
112 if (p_atomic_read(&bo->bo->refcnt) == 1 && !suballoc->cached_bo) {
113 suballoc->cached_bo = bo->bo;
118 tu_bo_finish(suballoc->dev, bo->bo);
122 tu_suballoc_bo_map(struct tu_suballoc_bo *bo)
124 return bo->bo->map + (bo->iova - bo->bo->iova);