Lines Matching refs:iova
97 #define section_offs(iova) (iova & (SECT_SIZE - 1))
99 #define lpage_offs(iova) (iova & (LPAGE_SIZE - 1))
101 #define spage_offs(iova) (iova & (SPAGE_SIZE - 1))
106 static u32 lv1ent_offset(sysmmu_iova_t iova)
108 return iova >> SECT_ORDER;
111 static u32 lv2ent_offset(sysmmu_iova_t iova)
113 return (iova >> SPAGE_ORDER) & (NUM_LV2ENTRIES - 1);
177 static sysmmu_pte_t *section_entry(sysmmu_pte_t *pgtable, sysmmu_iova_t iova)
179 return pgtable + lv1ent_offset(iova);
182 static sysmmu_pte_t *page_entry(sysmmu_pte_t *sent, sysmmu_iova_t iova)
185 lv2table_base(sent)) + lv2ent_offset(iova);
451 sysmmu_iova_t iova, unsigned int num_inv)
457 writel((iova & SPAGE_MASK) | 1,
459 iova += SPAGE_SIZE;
462 writel(iova & SPAGE_MASK, SYSMMU_REG(data, flush_start));
463 writel((iova & SPAGE_MASK) + (num_inv - 1) * SPAGE_SIZE,
669 sysmmu_iova_t iova)
680 __sysmmu_tlb_invalidate_entry(data, iova, 1);
689 sysmmu_iova_t iova, size_t size)
713 __sysmmu_tlb_invalidate_entry(data, iova, num_inv);
1065 sysmmu_pte_t *sent, sysmmu_iova_t iova, short *pgcounter)
1068 WARN(1, "Trying mapping on %#08x mapped with 1MiB page", iova);
1114 sysmmu_tlb_invalidate_flpdcache(data, iova);
1119 return page_entry(sent, iova);
1123 sysmmu_pte_t *sent, sysmmu_iova_t iova,
1128 iova);
1135 iova);
1153 sysmmu_tlb_invalidate_flpdcache(data, iova);
1226 sysmmu_iova_t iova = (sysmmu_iova_t)l_iova;
1235 entry = section_entry(domain->pgtable, iova);
1238 ret = lv1set_section(domain, entry, iova, paddr, prot,
1239 &domain->lv2entcnt[lv1ent_offset(iova)]);
1243 pent = alloc_lv2entry(domain, entry, iova,
1244 &domain->lv2entcnt[lv1ent_offset(iova)]);
1250 &domain->lv2entcnt[lv1ent_offset(iova)]);
1255 __func__, ret, size, iova);
1263 sysmmu_iova_t iova, size_t size)
1271 sysmmu_tlb_invalidate_entry(data, iova, size);
1281 sysmmu_iova_t iova = (sysmmu_iova_t)l_iova;
1290 ent = section_entry(domain->pgtable, iova);
1312 ent = page_entry(ent, iova);
1322 domain->lv2entcnt[lv1ent_offset(iova)] += 1;
1340 domain->lv2entcnt[lv1ent_offset(iova)] += SPAGES_PER_LPAGE;
1344 exynos_iommu_tlb_invalidate_entry(domain, iova, size);
1351 __func__, size, iova, err_pgsize);
1357 dma_addr_t iova)
1366 entry = section_entry(domain->pgtable, iova);
1369 phys = section_phys(entry) + section_offs(iova);
1371 entry = page_entry(entry, iova);
1374 phys = lpage_phys(entry) + lpage_offs(iova);
1376 phys = spage_phys(entry) + spage_offs(iova);