Lines Matching refs:iova
102 #define section_offs(iova) (iova & (SECT_SIZE - 1)) argument
104 #define lpage_offs(iova) (iova & (LPAGE_SIZE - 1)) argument
106 #define spage_offs(iova) (iova & (SPAGE_SIZE - 1)) argument
111 static u32 lv1ent_offset(sysmmu_iova_t iova) in lv1ent_offset() argument
113 return iova >> SECT_ORDER; in lv1ent_offset()
116 static u32 lv2ent_offset(sysmmu_iova_t iova) in lv2ent_offset() argument
118 return (iova >> SPAGE_ORDER) & (NUM_LV2ENTRIES - 1); in lv2ent_offset()
186 static sysmmu_pte_t *section_entry(sysmmu_pte_t *pgtable, sysmmu_iova_t iova) in section_entry() argument
188 return pgtable + lv1ent_offset(iova); in section_entry()
191 static sysmmu_pte_t *page_entry(sysmmu_pte_t *sent, sysmmu_iova_t iova) in page_entry() argument
194 lv2table_base(sent)) + lv2ent_offset(iova); in page_entry()
319 sysmmu_iova_t iova, unsigned int num_inv) in __sysmmu_tlb_invalidate_entry() argument
325 writel((iova & SPAGE_MASK) | 1, in __sysmmu_tlb_invalidate_entry()
327 iova += SPAGE_SIZE; in __sysmmu_tlb_invalidate_entry()
331 writel((iova & SPAGE_MASK) | 1, in __sysmmu_tlb_invalidate_entry()
334 writel((iova & SPAGE_MASK), in __sysmmu_tlb_invalidate_entry()
336 writel((iova & SPAGE_MASK) + (num_inv - 1) * SPAGE_SIZE, in __sysmmu_tlb_invalidate_entry()
518 sysmmu_iova_t iova) in sysmmu_tlb_invalidate_flpdcache() argument
529 __sysmmu_tlb_invalidate_entry(data, iova, 1); in sysmmu_tlb_invalidate_flpdcache()
538 sysmmu_iova_t iova, size_t size) in sysmmu_tlb_invalidate_entry() argument
562 __sysmmu_tlb_invalidate_entry(data, iova, num_inv); in sysmmu_tlb_invalidate_entry()
924 sysmmu_pte_t *sent, sysmmu_iova_t iova, short *pgcounter) in alloc_lv2entry() argument
927 WARN(1, "Trying mapping on %#08x mapped with 1MiB page", iova); in alloc_lv2entry()
973 sysmmu_tlb_invalidate_flpdcache(data, iova); in alloc_lv2entry()
978 return page_entry(sent, iova); in alloc_lv2entry()
982 sysmmu_pte_t *sent, sysmmu_iova_t iova, in lv1set_section() argument
987 iova); in lv1set_section()
994 iova); in lv1set_section()
1012 sysmmu_tlb_invalidate_flpdcache(data, iova); in lv1set_section()
1085 sysmmu_iova_t iova = (sysmmu_iova_t)l_iova; in exynos_iommu_map() local
1094 entry = section_entry(domain->pgtable, iova); in exynos_iommu_map()
1097 ret = lv1set_section(domain, entry, iova, paddr, prot, in exynos_iommu_map()
1098 &domain->lv2entcnt[lv1ent_offset(iova)]); in exynos_iommu_map()
1102 pent = alloc_lv2entry(domain, entry, iova, in exynos_iommu_map()
1103 &domain->lv2entcnt[lv1ent_offset(iova)]); in exynos_iommu_map()
1109 &domain->lv2entcnt[lv1ent_offset(iova)]); in exynos_iommu_map()
1114 __func__, ret, size, iova); in exynos_iommu_map()
1122 sysmmu_iova_t iova, size_t size) in exynos_iommu_tlb_invalidate_entry() argument
1130 sysmmu_tlb_invalidate_entry(data, iova, size); in exynos_iommu_tlb_invalidate_entry()
1139 sysmmu_iova_t iova = (sysmmu_iova_t)l_iova; in exynos_iommu_unmap() local
1148 ent = section_entry(domain->pgtable, iova); in exynos_iommu_unmap()
1170 ent = page_entry(ent, iova); in exynos_iommu_unmap()
1180 domain->lv2entcnt[lv1ent_offset(iova)] += 1; in exynos_iommu_unmap()
1198 domain->lv2entcnt[lv1ent_offset(iova)] += SPAGES_PER_LPAGE; in exynos_iommu_unmap()
1202 exynos_iommu_tlb_invalidate_entry(domain, iova, size); in exynos_iommu_unmap()
1209 __func__, size, iova, err_pgsize); in exynos_iommu_unmap()
1215 dma_addr_t iova) in exynos_iommu_iova_to_phys() argument
1224 entry = section_entry(domain->pgtable, iova); in exynos_iommu_iova_to_phys()
1227 phys = section_phys(entry) + section_offs(iova); in exynos_iommu_iova_to_phys()
1229 entry = page_entry(entry, iova); in exynos_iommu_iova_to_phys()
1232 phys = lpage_phys(entry) + lpage_offs(iova); in exynos_iommu_iova_to_phys()
1234 phys = spage_phys(entry) + spage_offs(iova); in exynos_iommu_iova_to_phys()