Lines Matching refs:iova

60 static u32 sysmmu_page_offset(sysmmu_iova_t iova, u32 size)  in sysmmu_page_offset()  argument
62 return iova & (size - 1); in sysmmu_page_offset()
66 #define section_offs(iova) sysmmu_page_offset((iova), SECT_SIZE) argument
68 #define lpage_offs(iova) sysmmu_page_offset((iova), LPAGE_SIZE) argument
70 #define spage_offs(iova) sysmmu_page_offset((iova), SPAGE_SIZE) argument
75 static u32 lv1ent_offset(sysmmu_iova_t iova) in lv1ent_offset() argument
77 return iova >> SECT_ORDER; in lv1ent_offset()
80 static u32 lv2ent_offset(sysmmu_iova_t iova) in lv2ent_offset() argument
82 return (iova >> SPAGE_ORDER) & (NUM_LV2ENTRIES - 1); in lv2ent_offset()
140 static sysmmu_pte_t *section_entry(sysmmu_pte_t *pgtable, sysmmu_iova_t iova) in section_entry() argument
142 return pgtable + lv1ent_offset(iova); in section_entry()
145 static sysmmu_pte_t *page_entry(sysmmu_pte_t *sent, sysmmu_iova_t iova) in page_entry() argument
148 lv2table_base(sent)) + lv2ent_offset(iova); in page_entry()
274 sysmmu_iova_t iova, unsigned int num_inv) in __sysmmu_tlb_invalidate_entry() argument
279 __raw_writel((iova & SPAGE_MASK) | 1, in __sysmmu_tlb_invalidate_entry()
281 iova += SPAGE_SIZE; in __sysmmu_tlb_invalidate_entry()
532 sysmmu_iova_t iova) in __sysmmu_tlb_invalidate_flpdcache() argument
535 __raw_writel(iova | 0x1, data->sfrbase + REG_MMU_FLUSH_ENTRY); in __sysmmu_tlb_invalidate_flpdcache()
539 sysmmu_iova_t iova) in sysmmu_tlb_invalidate_flpdcache() argument
550 __sysmmu_tlb_invalidate_flpdcache(data, iova); in sysmmu_tlb_invalidate_flpdcache()
557 static void sysmmu_tlb_invalidate_entry(struct device *dev, sysmmu_iova_t iova, in sysmmu_tlb_invalidate_entry() argument
588 data->sfrbase, iova, num_inv); in sysmmu_tlb_invalidate_entry()
595 iova); in sysmmu_tlb_invalidate_entry()
848 sysmmu_pte_t *sent, sysmmu_iova_t iova, short *pgcounter) in alloc_lv2entry() argument
851 WARN(1, "Trying mapping on %#08x mapped with 1MiB page", iova); in alloc_lv2entry()
892 owner->dev, iova); in alloc_lv2entry()
897 return page_entry(sent, iova); in alloc_lv2entry()
901 sysmmu_pte_t *sent, sysmmu_iova_t iova, in lv1set_section() argument
906 iova); in lv1set_section()
913 iova); in lv1set_section()
933 sysmmu_tlb_invalidate_flpdcache(owner->dev, iova); in lv1set_section()
1000 sysmmu_iova_t iova = (sysmmu_iova_t)l_iova; in exynos_iommu_map() local
1008 entry = section_entry(priv->pgtable, iova); in exynos_iommu_map()
1011 ret = lv1set_section(priv, entry, iova, paddr, in exynos_iommu_map()
1012 &priv->lv2entcnt[lv1ent_offset(iova)]); in exynos_iommu_map()
1016 pent = alloc_lv2entry(priv, entry, iova, in exynos_iommu_map()
1017 &priv->lv2entcnt[lv1ent_offset(iova)]); in exynos_iommu_map()
1023 &priv->lv2entcnt[lv1ent_offset(iova)]); in exynos_iommu_map()
1028 __func__, ret, size, iova); in exynos_iommu_map()
1036 sysmmu_iova_t iova, size_t size) in exynos_iommu_tlb_invalidate_entry() argument
1044 sysmmu_tlb_invalidate_entry(owner->dev, iova, size); in exynos_iommu_tlb_invalidate_entry()
1053 sysmmu_iova_t iova = (sysmmu_iova_t)l_iova; in exynos_iommu_unmap() local
1062 ent = section_entry(priv->pgtable, iova); in exynos_iommu_unmap()
1085 ent = page_entry(ent, iova); in exynos_iommu_unmap()
1096 priv->lv2entcnt[lv1ent_offset(iova)] += 1; in exynos_iommu_unmap()
1110 priv->lv2entcnt[lv1ent_offset(iova)] += SPAGES_PER_LPAGE; in exynos_iommu_unmap()
1114 exynos_iommu_tlb_invalidate_entry(priv, iova, size); in exynos_iommu_unmap()
1121 __func__, size, iova, err_pgsize); in exynos_iommu_unmap()
1127 dma_addr_t iova) in exynos_iommu_iova_to_phys() argument
1136 entry = section_entry(priv->pgtable, iova); in exynos_iommu_iova_to_phys()
1139 phys = section_phys(entry) + section_offs(iova); in exynos_iommu_iova_to_phys()
1141 entry = page_entry(entry, iova); in exynos_iommu_iova_to_phys()
1144 phys = lpage_phys(entry) + lpage_offs(iova); in exynos_iommu_iova_to_phys()
1146 phys = spage_phys(entry) + spage_offs(iova); in exynos_iommu_iova_to_phys()