Lines Matching refs:iopgd

148 	if (!obj->iopgd || !IS_ALIGNED((u32)obj->iopgd,  SZ_16K))  in omap2_iommu_enable()
151 pa = virt_to_phys(obj->iopgd); in omap2_iommu_enable()
624 static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, u32 da) in iopte_alloc() argument
629 if (*iopgd) in iopte_alloc()
639 if (!*iopgd) { in iopte_alloc()
643 *iopgd = virt_to_phys(iopte) | IOPGD_TABLE; in iopte_alloc()
644 flush_iopgd_range(iopgd, iopgd); in iopte_alloc()
653 iopte = iopte_offset(iopgd, da); in iopte_alloc()
657 __func__, da, iopgd, *iopgd, iopte, *iopte); in iopte_alloc()
664 u32 *iopgd = iopgd_offset(obj, da); in iopgd_alloc_section() local
672 *iopgd = (pa & IOSECTION_MASK) | prot | IOPGD_SECTION; in iopgd_alloc_section()
673 flush_iopgd_range(iopgd, iopgd); in iopgd_alloc_section()
679 u32 *iopgd = iopgd_offset(obj, da); in iopgd_alloc_super() local
689 *(iopgd + i) = (pa & IOSUPER_MASK) | prot | IOPGD_SUPER; in iopgd_alloc_super()
690 flush_iopgd_range(iopgd, iopgd + 15); in iopgd_alloc_super()
696 u32 *iopgd = iopgd_offset(obj, da); in iopte_alloc_page() local
697 u32 *iopte = iopte_alloc(obj, iopgd, da); in iopte_alloc_page()
713 u32 *iopgd = iopgd_offset(obj, da); in iopte_alloc_large() local
714 u32 *iopte = iopte_alloc(obj, iopgd, da); in iopte_alloc_large()
797 u32 *iopgd, *iopte = NULL; in iopgtable_lookup_entry() local
799 iopgd = iopgd_offset(obj, da); in iopgtable_lookup_entry()
800 if (!*iopgd) in iopgtable_lookup_entry()
803 if (iopgd_is_table(*iopgd)) in iopgtable_lookup_entry()
804 iopte = iopte_offset(iopgd, da); in iopgtable_lookup_entry()
806 *ppgd = iopgd; in iopgtable_lookup_entry()
813 u32 *iopgd = iopgd_offset(obj, da); in iopgtable_clear_entry_core() local
816 if (!*iopgd) in iopgtable_clear_entry_core()
819 if (iopgd_is_table(*iopgd)) { in iopgtable_clear_entry_core()
821 u32 *iopte = iopte_offset(iopgd, da); in iopgtable_clear_entry_core()
827 iopte = iopte_offset(iopgd, (da & IOLARGE_MASK)); in iopgtable_clear_entry_core()
836 iopte = iopte_offset(iopgd, 0); in iopgtable_clear_entry_core()
845 if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) { in iopgtable_clear_entry_core()
848 iopgd = iopgd_offset(obj, (da & IOSUPER_MASK)); in iopgtable_clear_entry_core()
852 memset(iopgd, 0, nent * sizeof(*iopgd)); in iopgtable_clear_entry_core()
853 flush_iopgd_range(iopgd, iopgd + (nent - 1) * sizeof(*iopgd)); in iopgtable_clear_entry_core()
885 u32 *iopgd; in iopgtable_clear_entry_all() local
888 iopgd = iopgd_offset(obj, da); in iopgtable_clear_entry_all()
890 if (!*iopgd) in iopgtable_clear_entry_all()
893 if (iopgd_is_table(*iopgd)) in iopgtable_clear_entry_all()
894 iopte_free(iopte_offset(iopgd, 0)); in iopgtable_clear_entry_all()
896 *iopgd = 0; in iopgtable_clear_entry_all()
897 flush_iopgd_range(iopgd, iopgd); in iopgtable_clear_entry_all()
911 u32 *iopgd, *iopte; in iommu_fault_handler() local
929 iopgd = iopgd_offset(obj, da); in iommu_fault_handler()
931 if (!iopgd_is_table(*iopgd)) { in iommu_fault_handler()
933 obj->name, errs, da, iopgd, *iopgd); in iommu_fault_handler()
937 iopte = iopte_offset(iopgd, da); in iommu_fault_handler()
940 obj->name, errs, da, iopgd, *iopgd, iopte, *iopte); in iommu_fault_handler()
960 static struct omap_iommu *omap_iommu_attach(const char *name, u32 *iopgd) in omap_iommu_attach() argument
976 obj->iopgd = iopgd; in omap_iommu_attach()
1004 obj->iopgd = NULL; in omap_iommu_detach()