Lines Matching refs:pt

59 	struct xe_lmtt_pt *pt;
63 pt = kzalloc(struct_size(pt, entries, num_entries), GFP_KERNEL);
64 if (!pt) {
82 pt->level = level;
83 pt->bo = bo;
84 return pt;
87 kfree(pt);
92 static void lmtt_pt_free(struct xe_lmtt_pt *pt)
94 xe_bo_unpin_map_no_vm(pt->bo);
95 kfree(pt);
219 static void lmtt_write_pte(struct xe_lmtt *lmtt, struct xe_lmtt_pt *pt,
222 unsigned int level = pt->level;
229 xe_map_wr(lmtt_to_xe(lmtt), &pt->bo->vmap, idx * sizeof(u32), u32, pte);
232 xe_map_wr(lmtt_to_xe(lmtt), &pt->bo->vmap, idx * sizeof(u64), u64, pte);
242 struct xe_lmtt_pt *pt;
246 pt = pd->entries[i];
248 if (!pt)
251 lmtt_destroy_pt(lmtt, pt);
260 struct xe_lmtt_pt *pt;
262 pt = pd->entries[vfid];
264 if (!pt)
270 lmtt_assert(lmtt, pt->level == pd->level - 1);
271 lmtt_destroy_pt(lmtt, pt);
285 struct xe_lmtt_pt *pt;
289 pt = lmtt_pt_alloc(lmtt, pd->level - 1);
290 if (IS_ERR(pt))
291 return PTR_ERR(pt);
293 pt_addr = xe_bo_main_addr(pt->bo, XE_PAGE_SIZE);
300 pd->entries[idx] = pt;
304 if (pt->level != 0) {
305 err = __lmtt_alloc_range(lmtt, pt, offset, next);
319 struct xe_lmtt_pt *pt;
332 pt = lmtt_pt_alloc(lmtt, pd->level - 1);
333 if (IS_ERR(pt))
334 return PTR_ERR(pt);
336 pt_addr = xe_bo_main_addr(pt->bo, XE_PAGE_SIZE);
342 pd->entries[vfid] = pt;
344 if (pt->level != 0) {
345 err = __lmtt_alloc_range(lmtt, pt, start, end);
353 lmtt_pt_free(pt);
360 struct xe_lmtt_pt *pt;
363 pt = pd->entries[vfid];
365 while (pt->level) {
366 lmtt_assert(lmtt, lmtt->ops->lmtt_pte_index(addr, pt->level) <=
367 lmtt->ops->lmtt_pte_num(pt->level));
369 pt = pt->entries[lmtt->ops->lmtt_pte_index(addr, pt->level)];
371 addr >>= lmtt->ops->lmtt_pte_shift(pt->level);
374 lmtt_assert(lmtt, lmtt->ops->lmtt_pte_index(addr, pt->level) <=
375 lmtt->ops->lmtt_pte_num(pt->level));
376 lmtt_assert(lmtt, pt->level != pd->level);
377 lmtt_assert(lmtt, pt->level == 0);
378 return pt;
385 struct xe_lmtt_pt *pt;
398 pt = lmtt_leaf_pt(lmtt, vfid, start);
400 lmtt_write_pte(lmtt, pt, lmtt->ops->lmtt_pte_encode(addr, 0),