Lines Matching full:tile
109 struct xe_tile *tile = ggtt->tile; in ggtt_update_access_counter() local
110 struct xe_gt *affected_gt = XE_GT_WA(tile->primary_gt, 22019338487) ? in ggtt_update_access_counter()
111 tile->primary_gt : tile->media_gt; in ggtt_update_access_counter()
113 u32 max_gtt_writes = XE_GT_WA(ggtt->tile->primary_gt, 22019338487) ? 1100 : 63; in ggtt_update_access_counter()
129 xe_tile_assert(ggtt->tile, !(addr & XE_PTE_MASK)); in xe_ggtt_set_pte()
130 xe_tile_assert(ggtt->tile, addr < ggtt->size); in xe_ggtt_set_pte()
143 u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB]; in xe_ggtt_clear()
147 xe_tile_assert(ggtt->tile, start < end); in xe_ggtt_clear()
164 * @tile: &xe_tile
166 * Allocates a &xe_ggtt for a given tile.
170 struct xe_ggtt *xe_ggtt_alloc(struct xe_tile *tile) in xe_ggtt_alloc() argument
172 struct xe_ggtt *ggtt = drmm_kzalloc(&tile_to_xe(tile)->drm, sizeof(*ggtt), GFP_KERNEL); in xe_ggtt_alloc()
174 ggtt->tile = tile; in xe_ggtt_alloc()
262 struct xe_device *xe = tile_to_xe(ggtt->tile); in xe_ggtt_init_early()
273 xe_tile_err(ggtt->tile, "Hardware reported no preallocated GSM\n"); in xe_ggtt_init_early()
277 ggtt->gsm = ggtt->tile->mmio.regs + SZ_8M; in xe_ggtt_init_early()
287 ggtt->pt_ops = (ggtt->tile->media_gt && in xe_ggtt_init_early()
288 XE_GT_WA(ggtt->tile->media_gt, 22019338487)) || in xe_ggtt_init_early()
289 XE_GT_WA(ggtt->tile->primary_gt, 22019338487) ? in xe_ggtt_init_early()
309 err = xe_tile_sriov_vf_prepare_ggtt(ggtt->tile); in xe_ggtt_init_early()
337 struct xe_device *xe = tile_to_xe(ggtt->tile); in ggtt_node_remove()
366 struct xe_device *xe = tile_to_xe(node->ggtt->tile); in ggtt_node_remove_work_func()
387 xe = tile_to_xe(ggtt->tile); in xe_ggtt_node_remove()
407 struct xe_device *xe = tile_to_xe(ggtt->tile); in xe_ggtt_init()
420 flags |= XE_BO_FLAG_VRAM_IF_DGFX(ggtt->tile); in xe_ggtt_init()
422 ggtt->scratch = xe_managed_bo_create_pin_map(xe, ggtt->tile, XE_PAGE_SIZE, flags); in xe_ggtt_init()
451 struct xe_device *xe = tile_to_xe(ggtt->tile); in xe_ggtt_invalidate()
461 /* Each GT in a tile has its own TLB to cache GGTT lookups */ in xe_ggtt_invalidate()
462 ggtt_invalidate_gt_tlb(ggtt->tile->primary_gt); in xe_ggtt_invalidate()
463 ggtt_invalidate_gt_tlb(ggtt->tile->media_gt); in xe_ggtt_invalidate()
473 xe_tile_dbg(ggtt->tile, "GGTT %#llx-%#llx (%s) %s\n", in xe_ggtt_dump_node()
494 xe_tile_assert(ggtt->tile, start < end); in xe_ggtt_node_insert_balloon_locked()
495 xe_tile_assert(ggtt->tile, IS_ALIGNED(start, XE_PAGE_SIZE)); in xe_ggtt_node_insert_balloon_locked()
496 xe_tile_assert(ggtt->tile, IS_ALIGNED(end, XE_PAGE_SIZE)); in xe_ggtt_node_insert_balloon_locked()
497 xe_tile_assert(ggtt->tile, !drm_mm_node_allocated(&node->base)); in xe_ggtt_node_insert_balloon_locked()
506 if (xe_tile_WARN(ggtt->tile, err, "Failed to balloon GGTT %#llx-%#llx (%pe)\n", in xe_ggtt_node_insert_balloon_locked()
535 struct xe_tile *tile = ggtt->tile; in xe_ggtt_assert_fit() local
536 struct xe_device *xe = tile_to_xe(tile); in xe_ggtt_assert_fit()
539 xe_tile_assert(tile, start >= wopcm); in xe_ggtt_assert_fit()
540 xe_tile_assert(tile, start + size < ggtt->size - wopcm); in xe_ggtt_assert_fit()
560 struct xe_tile *tile __maybe_unused = ggtt->tile; in xe_ggtt_shift_nodes_locked()
579 xe_tile_assert(tile, drm_mm_node_allocated(node)); in xe_ggtt_shift_nodes_locked()
729 u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode]; in xe_ggtt_map_bo_unlocked()
732 xe_ggtt_map_bo(ggtt, bo->ggtt_node[ggtt->tile->id], bo, pat_index); in xe_ggtt_map_bo_unlocked()
740 u8 tile_id = ggtt->tile->id; in __xe_ggtt_insert_bo_at()
748 xe_tile_assert(ggtt->tile, bo->ggtt_node[tile_id]->base.size == xe_bo_size(bo)); in __xe_ggtt_insert_bo_at()
756 xe_pm_runtime_get_noresume(tile_to_xe(ggtt->tile)); in __xe_ggtt_insert_bo_at()
773 u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode]; in __xe_ggtt_insert_bo_at()
783 xe_pm_runtime_put(tile_to_xe(ggtt->tile)); in __xe_ggtt_insert_bo_at()
825 u8 tile_id = ggtt->tile->id; in xe_ggtt_remove_bo()
831 xe_tile_assert(ggtt->tile, bo->ggtt_node[tile_id]->base.size == xe_bo_size(bo)); in xe_ggtt_remove_bo()
849 u64 hole_min_start = xe_wopcm_size(tile_to_xe(ggtt->tile)); in xe_ggtt_largest_hole()
949 u64 hole_min_start = xe_wopcm_size(tile_to_xe(ggtt->tile)); in xe_ggtt_print_holes()