Lines Matching refs:io_domain
73 struct iommu_domain io_domain; member
84 return container_of(dom, struct ipmmu_vmsa_domain, io_domain); in to_vmsa_domain()
486 domain->io_domain.geometry.aperture_end = DMA_BIT_MASK(32); in ipmmu_domain_init_context()
487 domain->io_domain.geometry.force_aperture = true; in ipmmu_domain_init_context()
576 if (!report_iommu_fault(&domain->io_domain, mmu->dev, iova, 0)) in ipmmu_domain_irq()
624 return &domain->io_domain; in __ipmmu_domain_alloc()
629 struct iommu_domain *io_domain = NULL; in ipmmu_domain_alloc() local
633 io_domain = __ipmmu_domain_alloc(type); in ipmmu_domain_alloc()
637 io_domain = __ipmmu_domain_alloc(type); in ipmmu_domain_alloc()
638 if (io_domain && iommu_get_dma_cookie(io_domain)) { in ipmmu_domain_alloc()
639 kfree(io_domain); in ipmmu_domain_alloc()
640 io_domain = NULL; in ipmmu_domain_alloc()
645 return io_domain; in ipmmu_domain_alloc()
648 static void ipmmu_domain_free(struct iommu_domain *io_domain) in ipmmu_domain_free() argument
650 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_domain_free()
656 iommu_put_dma_cookie(io_domain); in ipmmu_domain_free()
662 static int ipmmu_attach_device(struct iommu_domain *io_domain, in ipmmu_attach_device() argument
667 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_attach_device()
711 static void ipmmu_detach_device(struct iommu_domain *io_domain, in ipmmu_detach_device() argument
715 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_detach_device()
726 static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova, in ipmmu_map() argument
729 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_map()
737 static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova, in ipmmu_unmap() argument
740 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_unmap()
745 static void ipmmu_flush_iotlb_all(struct iommu_domain *io_domain) in ipmmu_flush_iotlb_all() argument
747 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_flush_iotlb_all()
753 static void ipmmu_iotlb_sync(struct iommu_domain *io_domain, in ipmmu_iotlb_sync() argument
756 ipmmu_flush_iotlb_all(io_domain); in ipmmu_iotlb_sync()
759 static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain, in ipmmu_iova_to_phys() argument
762 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_iova_to_phys()