Lines Matching full:tile
54 /** @tile: Backpointer to the tile this struct xe_migrate belongs to. */
55 struct xe_tile *tile;
189 static int xe_migrate_pt_bo_alloc(struct xe_tile *tile, struct xe_migrate *m,
192 struct xe_bo *bo, *batch = tile->mem.kernel_bb_pool->bo;
203 xe_tile_assert(tile, m->batch_base_ofs + xe_bo_size(batch) < SZ_2M);
205 bo = xe_bo_create_pin_map(vm->xe, tile, vm,
208 XE_BO_FLAG_VRAM_IF_DGFX(tile) |
217 static void xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
220 struct xe_device *xe = tile_to_xe(tile);
222 u8 id = tile->id;
228 struct xe_bo *bo = m->pt_bo, *batch = tile->mem.kernel_bb_pool->bo;
265 xe_tile_assert(tile, xe_bo_size(batch) == SZ_1M);
267 batch = tile->primary_gt->usm.bb_pool->bo;
269 xe_tile_assert(tile, xe_bo_size(batch) == SZ_512K);
288 batch = tile->primary_gt->usm.bb_pool->bo;
414 * @tile: &xe_tile
416 * Allocates a &xe_migrate for a given tile.
420 struct xe_migrate *xe_migrate_alloc(struct xe_tile *tile)
422 struct xe_migrate *m = drmm_kzalloc(&tile_to_xe(tile)->drm, sizeof(*m), GFP_KERNEL);
425 m->tile = tile;
429 static int xe_migrate_lock_prepare_vm(struct xe_tile *tile, struct xe_migrate *m, struct xe_vm *vm)
431 struct xe_device *xe = tile_to_xe(tile);
444 err = xe_migrate_pt_bo_alloc(tile, m, vm, &exec);
448 xe_migrate_prepare_vm(tile, m, vm, &map_ofs);
465 struct xe_tile *tile = m->tile;
466 struct xe_gt *primary_gt = tile->primary_gt;
467 struct xe_device *xe = tile_to_xe(tile);
473 XE_VM_FLAG_SET_TILE_ID(tile), NULL);
477 err = xe_migrate_lock_prepare_vm(tile, m, vm);
555 struct xe_device *xe = tile_to_xe(m->tile);
601 *L0_ofs = xe_migrate_vram_ofs(tile_to_xe(m->tile),
632 struct xe_device *xe = tile_to_xe(m->tile);
678 addr = vm->pt_ops->pte_encode_addr(m->tile->xe,
849 struct xe_gt *gt = m->tile->primary_gt;
893 struct xe_gt *gt = m->tile->primary_gt;
1166 * @tile: Tile whose migration context to be used.
1178 int xe_migrate_ccs_rw_copy(struct xe_tile *tile, struct xe_exec_queue *q,
1186 struct xe_migrate *m = tile->migrate;
1187 struct xe_gt *gt = tile->primary_gt;
1384 struct xe_tile *tile = vram_bo->tile;
1385 struct xe_gt *gt = tile->primary_gt;
1386 struct xe_migrate *m = tile->migrate;
1603 struct xe_gt *gt = m->tile->primary_gt;
1738 static void write_pgtable(struct xe_tile *tile, struct xe_bb *bb, u64 ppgtt_ofs,
1756 xe_tile_assert(tile, update->qwords < MAX_NUM_PTE);
1758 ppgtt_ofs = xe_migrate_vram_ofs(tile_to_xe(tile),
1775 ops->populate(pt_update, tile, NULL, bb->cs + bb->len,
1778 ops->clear(pt_update, tile, NULL, bb->cs + bb->len,
1835 ops->populate(pt_update, m->tile,
1840 ops->clear(pt_update, m->tile,
1858 struct xe_tile *tile = m->tile;
1859 struct xe_gt *gt = tile->primary_gt;
1860 struct xe_device *xe = tile_to_xe(tile);
1952 xe_tile_assert(tile, xe_bo_size(pt_bo) == SZ_4K);
1985 write_pgtable(tile, bb, addr +
2001 write_pgtable(tile, bb, 0, pt_op, &updates[j],
2121 u16 pat_index = xe_cache_pat_idx(tile_to_xe(m->tile), XE_CACHE_WB);
2126 xe_tile_assert(m->tile, PAGE_ALIGNED(size));
2146 xe_tile_assert(m->tile, sram_addr[i].proto ==
2149 xe_tile_assert(m->tile, addr);
2150 xe_tile_assert(m->tile, PAGE_ALIGNED(addr));
2153 pte = m->q->vm->pt_ops->pte_encode_addr(m->tile->xe,
2216 struct xe_gt *gt = m->tile->primary_gt;
2454 struct xe_tile *tile = m->tile;
2455 struct xe_device *xe = tile_to_xe(tile);