Lines Matching refs:hops
477 struct hl_mmu_hop_info *hops, in hl_mmu_pa_page_with_offset() argument
485 if (hops->unscrambled_paddr) in hl_mmu_pa_page_with_offset()
486 tmp_phys_addr = hops->unscrambled_paddr; in hl_mmu_pa_page_with_offset()
488 tmp_phys_addr = hops->hop_info[hops->used_hops - 1].hop_pte_val; in hl_mmu_pa_page_with_offset()
490 if (hops->range_type == HL_VA_RANGE_TYPE_HOST_HUGE) in hl_mmu_pa_page_with_offset()
492 else if (hops->range_type == HL_VA_RANGE_TYPE_HOST) in hl_mmu_pa_page_with_offset()
497 if ((hops->range_type == HL_VA_RANGE_TYPE_DRAM) && in hl_mmu_pa_page_with_offset()
524 hop_shift = mmu_prop->hop_shifts[hops->used_hops - 1]; in hl_mmu_pa_page_with_offset()
534 struct hl_mmu_hop_info hops; in hl_mmu_va_to_pa() local
537 memset(&hops, 0, sizeof(hops)); in hl_mmu_va_to_pa()
539 rc = hl_mmu_get_tlb_info(ctx, virt_addr, &hops); in hl_mmu_va_to_pa()
543 hl_mmu_pa_page_with_offset(ctx, virt_addr, &hops, phys_addr); in hl_mmu_va_to_pa()
549 struct hl_mmu_hop_info *hops) in hl_mmu_get_tlb_info() argument
562 hops->scrambled_vaddr = virt_addr; /* assume no scrambling */ in hl_mmu_get_tlb_info()
574 rc = mmu_funcs->get_tlb_info(ctx, virt_addr, hops); in hl_mmu_get_tlb_info()
581 if (hops->unscrambled_paddr) in hl_mmu_get_tlb_info()
582 hl_mmu_pa_page_with_offset(ctx, virt_addr, hops, &hops->unscrambled_paddr); in hl_mmu_get_tlb_info()
1155 int hl_mmu_hr_get_tlb_info(struct hl_ctx *ctx, u64 virt_addr, struct hl_mmu_hop_info *hops, in hl_mmu_hr_get_tlb_info() argument
1165 rc = hr_func->get_tlb_mapping_params(hdev, &mmu_prop, hops, virt_addr, &is_huge); in hl_mmu_hr_get_tlb_info()
1175 hops->scrambled_vaddr = hdev->asic_funcs->scramble_addr(hdev, virt_addr); in hl_mmu_hr_get_tlb_info()
1182 hops->hop_info[i - 1].hop_pte_val); in hl_mmu_hr_get_tlb_info()
1187 hops->hop_info[i].hop_addr = hops_pgt_info[i]->phys_addr; in hl_mmu_hr_get_tlb_info()
1188 hops->hop_info[i].hop_pte_addr = in hl_mmu_hr_get_tlb_info()
1190 hops->hop_info[i].hop_addr, in hl_mmu_hr_get_tlb_info()
1191 hops->scrambled_vaddr); in hl_mmu_hr_get_tlb_info()
1192 hops->hop_info[i].hop_pte_val = *(u64 *) (uintptr_t) in hl_mmu_hr_get_tlb_info()
1194 hops->hop_info[i].hop_pte_addr, in hl_mmu_hr_get_tlb_info()
1197 if (!(hops->hop_info[i].hop_pte_val & PAGE_PRESENT_MASK)) in hl_mmu_hr_get_tlb_info()
1200 if (hops->hop_info[i].hop_pte_val & mmu_prop->last_mask) in hl_mmu_hr_get_tlb_info()
1208 if (hops->scrambled_vaddr != virt_addr) in hl_mmu_hr_get_tlb_info()
1209 hops->unscrambled_paddr = hdev->asic_funcs->descramble_addr in hl_mmu_hr_get_tlb_info()
1210 (hdev, hops->hop_info[i].hop_pte_val); in hl_mmu_hr_get_tlb_info()
1212 hops->unscrambled_paddr = hops->hop_info[i].hop_pte_val; in hl_mmu_hr_get_tlb_info()
1214 hops->used_hops = i + 1; in hl_mmu_hr_get_tlb_info()