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 bb->cs[bb->len++] = MI_BATCH_BUFFER_END; in __xe_bb_create_job()
70 xe_gt_assert(q->gt, bb->len * 4 + bb_prefetch(q->gt) <= size); in __xe_bb_create_job()
72 xe_sa_bo_flush_write(bb->bo); in __xe_bb_create_job()
78 struct xe_bb *bb, in xe_bb_create_migration_job() argument
83 batch_base_ofs + drm_suballoc_soffset(bb->bo), in xe_bb_create_migration_job()
84 batch_base_ofs + drm_suballoc_soffset(bb->bo) + in xe_bb_create_migration_job()
88 xe_gt_assert(q->gt, second_idx <= bb->len); in xe_bb_create_migration_job()
91 return __xe_bb_create_job(q, bb, addr); in xe_bb_create_migration_job()
95 struct xe_bb *bb) in xe_bb_create_job() argument
97 u64 addr = xe_sa_bo_gpu_addr(bb->bo); in xe_bb_create_job()
100 return __xe_bb_create_job(q, bb, &addr); in xe_bb_create_job()
103 void xe_bb_free(struct xe_bb *bb, struct dma_fence *fence) in xe_bb_free() argument
105 if (!bb) in xe_bb_free()
108 xe_sa_bo_free(bb->bo, fence); in xe_bb_free()
109 kfree(bb); in xe_bb_free()