Lines Matching refs:iopgd

158 	if (!obj->iopgd || !IS_ALIGNED((unsigned long)obj->iopgd,  SZ_16K))  in omap2_iommu_enable()
161 pa = virt_to_phys(obj->iopgd); in omap2_iommu_enable()
484 static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, in iopte_alloc() argument
491 if (*iopgd) in iopte_alloc()
501 if (!*iopgd) { in iopte_alloc()
525 *iopgd = virt_to_phys(iopte) | IOPGD_TABLE; in iopte_alloc()
535 iopte = iopte_offset(iopgd, da); in iopte_alloc()
536 *pt_dma = iopgd_page_paddr(iopgd); in iopte_alloc()
539 __func__, da, iopgd, *iopgd, iopte, *iopte); in iopte_alloc()
546 u32 *iopgd = iopgd_offset(obj, da); in iopgd_alloc_section() local
555 *iopgd = (pa & IOSECTION_MASK) | prot | IOPGD_SECTION; in iopgd_alloc_section()
562 u32 *iopgd = iopgd_offset(obj, da); in iopgd_alloc_super() local
573 *(iopgd + i) = (pa & IOSUPER_MASK) | prot | IOPGD_SUPER; in iopgd_alloc_super()
580 u32 *iopgd = iopgd_offset(obj, da); in iopte_alloc_page() local
582 u32 *iopte = iopte_alloc(obj, iopgd, &pt_dma, da); in iopte_alloc_page()
599 u32 *iopgd = iopgd_offset(obj, da); in iopte_alloc_large() local
601 u32 *iopte = iopte_alloc(obj, iopgd, &pt_dma, da); in iopte_alloc_large()
687 u32 *iopgd, *iopte = NULL; in iopgtable_lookup_entry() local
689 iopgd = iopgd_offset(obj, da); in iopgtable_lookup_entry()
690 if (!*iopgd) in iopgtable_lookup_entry()
693 if (iopgd_is_table(*iopgd)) in iopgtable_lookup_entry()
694 iopte = iopte_offset(iopgd, da); in iopgtable_lookup_entry()
696 *ppgd = iopgd; in iopgtable_lookup_entry()
703 u32 *iopgd = iopgd_offset(obj, da); in iopgtable_clear_entry_core() local
709 if (!*iopgd) in iopgtable_clear_entry_core()
712 if (iopgd_is_table(*iopgd)) { in iopgtable_clear_entry_core()
714 u32 *iopte = iopte_offset(iopgd, da); in iopgtable_clear_entry_core()
720 iopte = iopte_offset(iopgd, (da & IOLARGE_MASK)); in iopgtable_clear_entry_core()
724 pt_dma = iopgd_page_paddr(iopgd); in iopgtable_clear_entry_core()
730 iopte = iopte_offset(iopgd, 0); in iopgtable_clear_entry_core()
739 if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) { in iopgtable_clear_entry_core()
742 iopgd = iopgd_offset(obj, (da & IOSUPER_MASK)); in iopgtable_clear_entry_core()
746 memset(iopgd, 0, nent * sizeof(*iopgd)); in iopgtable_clear_entry_core()
780 u32 *iopgd; in iopgtable_clear_entry_all() local
783 iopgd = iopgd_offset(obj, da); in iopgtable_clear_entry_all()
786 if (!*iopgd) in iopgtable_clear_entry_all()
789 if (iopgd_is_table(*iopgd)) in iopgtable_clear_entry_all()
790 iopte_free(obj, iopte_offset(iopgd, 0), true); in iopgtable_clear_entry_all()
792 *iopgd = 0; in iopgtable_clear_entry_all()
807 u32 *iopgd, *iopte; in iommu_fault_handler() local
825 iopgd = iopgd_offset(obj, da); in iommu_fault_handler()
827 if (!iopgd_is_table(*iopgd)) { in iommu_fault_handler()
829 obj->name, errs, da, iopgd, *iopgd); in iommu_fault_handler()
833 iopte = iopte_offset(iopgd, da); in iommu_fault_handler()
836 obj->name, errs, da, iopgd, *iopgd, iopte, *iopte); in iommu_fault_handler()
846 static int omap_iommu_attach(struct omap_iommu *obj, u32 *iopgd) in omap_iommu_attach() argument
852 obj->pd_dma = dma_map_single(obj->dev, iopgd, IOPGD_TABLE_SIZE, in omap_iommu_attach()
860 obj->iopgd = iopgd; in omap_iommu_attach()
892 obj->iopgd = NULL; in omap_iommu_detach()
1018 if (obj->domain && obj->iopgd) in omap_iommu_runtime_suspend()