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