Lines Matching refs:iova
987 phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova) in iommu_iova_to_phys() argument
992 return domain->ops->iova_to_phys(domain, iova); in iommu_iova_to_phys()
1028 int iommu_map(struct iommu_domain *domain, unsigned long iova, in iommu_map() argument
1031 unsigned long orig_iova = iova; in iommu_map()
1051 if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) { in iommu_map()
1053 iova, &paddr, size, min_pagesz); in iommu_map()
1057 pr_debug("map: iova 0x%lx pa %pa size 0x%zx\n", iova, &paddr, size); in iommu_map()
1060 size_t pgsize = iommu_pgsize(domain, iova | paddr, size); in iommu_map()
1063 iova, &paddr, pgsize); in iommu_map()
1065 ret = domain->ops->map(domain, iova, paddr, pgsize, prot); in iommu_map()
1069 iova += pgsize; in iommu_map()
1084 size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size) in iommu_unmap() argument
1088 unsigned long orig_iova = iova; in iommu_unmap()
1105 if (!IS_ALIGNED(iova | size, min_pagesz)) { in iommu_unmap()
1107 iova, size, min_pagesz); in iommu_unmap()
1111 pr_debug("unmap this: iova 0x%lx size 0x%zx\n", iova, size); in iommu_unmap()
1118 size_t pgsize = iommu_pgsize(domain, iova, size - unmapped); in iommu_unmap()
1120 unmapped_page = domain->ops->unmap(domain, iova, pgsize); in iommu_unmap()
1125 iova, unmapped_page); in iommu_unmap()
1127 iova += unmapped_page; in iommu_unmap()
1136 size_t default_iommu_map_sg(struct iommu_domain *domain, unsigned long iova, in default_iommu_map_sg() argument
1161 ret = iommu_map(domain, iova + mapped, phys, s->length, prot); in default_iommu_map_sg()
1172 iommu_unmap(domain, iova, mapped); in default_iommu_map_sg()