Lines Matching refs:pgtable
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()
199 sysmmu_pte_t *pgtable; /* lv1 page table, 16KB */ member
215 phys_addr_t pgtable; member
390 data->pgtable = 0; in __sysmmu_disable()
437 __sysmmu_set_ptbase(data->sfrbase, data->pgtable); in __sysmmu_enable_nocount()
446 phys_addr_t pgtable, struct iommu_domain *domain) in __sysmmu_enable() argument
453 data->pgtable = pgtable; in __sysmmu_enable()
460 ret = (pgtable == data->pgtable) ? 1 : -EBUSY; in __sysmmu_enable()
479 static int __exynos_sysmmu_enable(struct device *dev, phys_addr_t pgtable, in __exynos_sysmmu_enable() argument
493 ret = __sysmmu_enable(data, pgtable, domain); in __exynos_sysmmu_enable()
502 int exynos_sysmmu_enable(struct device *dev, phys_addr_t pgtable) in exynos_sysmmu_enable() argument
504 BUG_ON(!memblock_is_memory(pgtable)); in exynos_sysmmu_enable()
506 return __exynos_sysmmu_enable(dev, pgtable, NULL); in exynos_sysmmu_enable()
717 exynos_domain->pgtable = (sysmmu_pte_t *)__get_free_pages(GFP_KERNEL, 2); in exynos_iommu_domain_alloc()
718 if (!exynos_domain->pgtable) in exynos_iommu_domain_alloc()
727 exynos_domain->pgtable[i + 0] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
728 exynos_domain->pgtable[i + 1] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
729 exynos_domain->pgtable[i + 2] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
730 exynos_domain->pgtable[i + 3] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
731 exynos_domain->pgtable[i + 4] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
732 exynos_domain->pgtable[i + 5] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
733 exynos_domain->pgtable[i + 6] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
734 exynos_domain->pgtable[i + 7] = ZERO_LV2LINK; in exynos_iommu_domain_alloc()
737 pgtable_flush(exynos_domain->pgtable, exynos_domain->pgtable + NUM_LV1ENTRIES); in exynos_iommu_domain_alloc()
750 free_pages((unsigned long)exynos_domain->pgtable, 2); in exynos_iommu_domain_alloc()
778 if (lv1ent_page(priv->pgtable + i)) in exynos_iommu_domain_free()
780 phys_to_virt(lv2table_base(priv->pgtable + i))); in exynos_iommu_domain_free()
782 free_pages((unsigned long)priv->pgtable, 2); in exynos_iommu_domain_free()
792 phys_addr_t pagetable = virt_to_phys(priv->pgtable); in exynos_iommu_attach_device()
823 phys_addr_t pagetable = virt_to_phys(priv->pgtable); in exynos_iommu_detach_device()
1004 BUG_ON(priv->pgtable == NULL); in exynos_iommu_map()
1008 entry = section_entry(priv->pgtable, iova); in exynos_iommu_map()
1058 BUG_ON(priv->pgtable == NULL); in exynos_iommu_unmap()
1062 ent = section_entry(priv->pgtable, iova); in exynos_iommu_unmap()
1136 entry = section_entry(priv->pgtable, iova); in exynos_iommu_iova_to_phys()