• Home
  • Raw
  • Download

Lines Matching refs:iopgd

159 	if (!obj->iopgd || !IS_ALIGNED((unsigned long)obj->iopgd,  SZ_16K))  in omap2_iommu_enable()
162 pa = virt_to_phys(obj->iopgd); in omap2_iommu_enable()
485 static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, in iopte_alloc() argument
492 if (*iopgd) in iopte_alloc()
502 if (!*iopgd) { in iopte_alloc()
526 *iopgd = virt_to_phys(iopte) | IOPGD_TABLE; in iopte_alloc()
536 iopte = iopte_offset(iopgd, da); in iopte_alloc()
537 *pt_dma = iopgd_page_paddr(iopgd); in iopte_alloc()
540 __func__, da, iopgd, *iopgd, iopte, *iopte); in iopte_alloc()
547 u32 *iopgd = iopgd_offset(obj, da); in iopgd_alloc_section() local
556 *iopgd = (pa & IOSECTION_MASK) | prot | IOPGD_SECTION; in iopgd_alloc_section()
563 u32 *iopgd = iopgd_offset(obj, da); in iopgd_alloc_super() local
574 *(iopgd + i) = (pa & IOSUPER_MASK) | prot | IOPGD_SUPER; in iopgd_alloc_super()
581 u32 *iopgd = iopgd_offset(obj, da); in iopte_alloc_page() local
583 u32 *iopte = iopte_alloc(obj, iopgd, &pt_dma, da); in iopte_alloc_page()
600 u32 *iopgd = iopgd_offset(obj, da); in iopte_alloc_large() local
602 u32 *iopte = iopte_alloc(obj, iopgd, &pt_dma, da); in iopte_alloc_large()
688 u32 *iopgd, *iopte = NULL; in iopgtable_lookup_entry() local
690 iopgd = iopgd_offset(obj, da); in iopgtable_lookup_entry()
691 if (!*iopgd) in iopgtable_lookup_entry()
694 if (iopgd_is_table(*iopgd)) in iopgtable_lookup_entry()
695 iopte = iopte_offset(iopgd, da); in iopgtable_lookup_entry()
697 *ppgd = iopgd; in iopgtable_lookup_entry()
704 u32 *iopgd = iopgd_offset(obj, da); in iopgtable_clear_entry_core() local
710 if (!*iopgd) in iopgtable_clear_entry_core()
713 if (iopgd_is_table(*iopgd)) { in iopgtable_clear_entry_core()
715 u32 *iopte = iopte_offset(iopgd, da); in iopgtable_clear_entry_core()
721 iopte = iopte_offset(iopgd, (da & IOLARGE_MASK)); in iopgtable_clear_entry_core()
725 pt_dma = iopgd_page_paddr(iopgd); in iopgtable_clear_entry_core()
731 iopte = iopte_offset(iopgd, 0); in iopgtable_clear_entry_core()
740 if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) { in iopgtable_clear_entry_core()
743 iopgd = iopgd_offset(obj, (da & IOSUPER_MASK)); in iopgtable_clear_entry_core()
747 memset(iopgd, 0, nent * sizeof(*iopgd)); in iopgtable_clear_entry_core()
781 u32 *iopgd; in iopgtable_clear_entry_all() local
784 iopgd = iopgd_offset(obj, da); in iopgtable_clear_entry_all()
787 if (!*iopgd) in iopgtable_clear_entry_all()
790 if (iopgd_is_table(*iopgd)) in iopgtable_clear_entry_all()
791 iopte_free(obj, iopte_offset(iopgd, 0), true); in iopgtable_clear_entry_all()
793 *iopgd = 0; in iopgtable_clear_entry_all()
808 u32 *iopgd, *iopte; in iommu_fault_handler() local
826 iopgd = iopgd_offset(obj, da); in iommu_fault_handler()
828 if (!iopgd_is_table(*iopgd)) { in iommu_fault_handler()
830 obj->name, errs, da, iopgd, *iopgd); in iommu_fault_handler()
834 iopte = iopte_offset(iopgd, da); in iommu_fault_handler()
837 obj->name, errs, da, iopgd, *iopgd, iopte, *iopte); in iommu_fault_handler()
847 static int omap_iommu_attach(struct omap_iommu *obj, u32 *iopgd) in omap_iommu_attach() argument
853 obj->pd_dma = dma_map_single(obj->dev, iopgd, IOPGD_TABLE_SIZE, in omap_iommu_attach()
861 obj->iopgd = iopgd; in omap_iommu_attach()
893 obj->iopgd = NULL; in omap_iommu_detach()
1019 if (obj->domain && obj->iopgd) in omap_iommu_runtime_suspend()