Lines Matching full:bb

35 	struct xe_bb *bb = kmalloc(sizeof(*bb), GFP_KERNEL);  in xe_bb_new()  local
38 if (!bb) in xe_bb_new()
47 bb->bo = xe_sa_bo_new(!usm ? tile->mem.kernel_bb_pool : gt->usm.bb_pool, in xe_bb_new()
49 if (IS_ERR(bb->bo)) { in xe_bb_new()
50 err = PTR_ERR(bb->bo); in xe_bb_new()
54 bb->cs = xe_sa_bo_cpu_addr(bb->bo); in xe_bb_new()
55 bb->len = 0; in xe_bb_new()
57 return bb; in xe_bb_new()
59 kfree(bb); in xe_bb_new()
64 __xe_bb_create_job(struct xe_exec_queue *q, struct xe_bb *bb, u64 *addr) in __xe_bb_create_job() argument
66 u32 size = drm_suballoc_size(bb->bo); in __xe_bb_create_job()
68 if (bb->len == 0 || bb->cs[bb->len - 1] != MI_BATCH_BUFFER_END) in __xe_bb_create_job()
69 bb->cs[bb->len++] = MI_BATCH_BUFFER_END; in __xe_bb_create_job()
71 xe_gt_assert(q->gt, bb->len * 4 + bb_prefetch(q->gt) <= size); in __xe_bb_create_job()
73 xe_sa_bo_flush_write(bb->bo); in __xe_bb_create_job()
79 struct xe_bb *bb, in xe_bb_create_migration_job() argument
84 batch_base_ofs + drm_suballoc_soffset(bb->bo), in xe_bb_create_migration_job()
85 batch_base_ofs + drm_suballoc_soffset(bb->bo) + in xe_bb_create_migration_job()
89 xe_gt_assert(q->gt, second_idx <= bb->len); in xe_bb_create_migration_job()
93 return __xe_bb_create_job(q, bb, addr); in xe_bb_create_migration_job()
97 struct xe_bb *bb) in xe_bb_create_job() argument
99 u64 addr = xe_sa_bo_gpu_addr(bb->bo); in xe_bb_create_job()
103 return __xe_bb_create_job(q, bb, &addr); in xe_bb_create_job()
106 void xe_bb_free(struct xe_bb *bb, struct dma_fence *fence) in xe_bb_free() argument
108 if (!bb) in xe_bb_free()
111 xe_sa_bo_free(bb->bo, fence); in xe_bb_free()
112 kfree(bb); in xe_bb_free()