Lines Matching refs:level

57 static struct xe_lmtt_pt *lmtt_pt_alloc(struct xe_lmtt *lmtt, unsigned int level)
59 unsigned int num_entries = level ? lmtt->ops->lmtt_pte_num(level) : 0;
71 PAGE_ALIGN(lmtt->ops->lmtt_pte_size(level) *
72 lmtt->ops->lmtt_pte_num(level)),
82 lmtt_debug(lmtt, "level=%u addr=%#llx\n", level, (u64)xe_bo_main_addr(bo, XE_PAGE_SIZE));
86 pt->level = level;
98 lmtt_debug(&pt->bo->tile->sriov.pf.lmtt, "level=%u addr=%llx\n",
99 pt->level, (u64)xe_bo_main_addr(pt->bo, XE_PAGE_SIZE));
123 unsigned int num_entries = lmtt->ops->lmtt_pte_num(pd->level);
281 unsigned int level = pt->level;
283 lmtt_assert(lmtt, idx <= lmtt->ops->lmtt_pte_num(level));
284 lmtt_debug(lmtt, "WRITE level=%u index=%u pte=%#llx\n", level, idx, pte);
286 switch (lmtt->ops->lmtt_pte_size(level)) {
305 unsigned int num_entries = pd->level ? lmtt->ops->lmtt_pte_num(pd->level) : 0;
334 lmtt_assert(lmtt, pd->level > 0);
335 lmtt_assert(lmtt, pt->level == pd->level - 1);
342 u64 pte_addr_shift = BIT_ULL(lmtt->ops->lmtt_pte_shift(pd->level));
346 lmtt_assert(lmtt, pd->level > 0);
354 pt = lmtt_pt_alloc(lmtt, pd->level - 1);
360 idx = lmtt->ops->lmtt_pte_index(offset, pd->level);
361 pde = lmtt->ops->lmtt_pte_encode(pt_addr, pd->level);
369 if (pt->level != 0) {
389 lmtt_assert(lmtt, pd->level > 0);
390 lmtt_assert(lmtt, vfid <= lmtt->ops->lmtt_pte_num(pd->level));
397 pt = lmtt_pt_alloc(lmtt, pd->level - 1);
403 pde = lmtt->ops->lmtt_pte_encode(pt_addr, pd->level);
409 if (pt->level != 0) {
427 lmtt_assert(lmtt, vfid <= lmtt->ops->lmtt_pte_num(pd->level));
430 while (pt->level) {
431 lmtt_assert(lmtt, lmtt->ops->lmtt_pte_index(addr, pt->level) <=
432 lmtt->ops->lmtt_pte_num(pt->level));
434 pt = pt->entries[lmtt->ops->lmtt_pte_index(addr, pt->level)];
436 addr >>= lmtt->ops->lmtt_pte_shift(pt->level);
439 lmtt_assert(lmtt, lmtt->ops->lmtt_pte_index(addr, pt->level) <=
440 lmtt->ops->lmtt_pte_num(pt->level));
441 lmtt_assert(lmtt, pt->level != pd->level);
442 lmtt_assert(lmtt, pt->level == 0);
550 unsigned int level = 0;
557 pt_size = PAGE_ALIGN(lmtt->ops->lmtt_pte_size(level) *
558 lmtt->ops->lmtt_pte_num(level));
560 while (++level < lmtt->ops->lmtt_root_pd_level()) {
561 pt_size *= lmtt->ops->lmtt_pte_index(size, level) + 1;
562 pt_size += PAGE_ALIGN(lmtt->ops->lmtt_pte_size(level) *
563 lmtt->ops->lmtt_pte_num(level));