Lines Matching refs:io_domain
75 struct iommu_domain io_domain; member
86 return container_of(dom, struct ipmmu_vmsa_domain, io_domain); in to_vmsa_domain()
441 domain->io_domain.geometry.aperture_end = DMA_BIT_MASK(32); in ipmmu_domain_init_context()
442 domain->io_domain.geometry.force_aperture = true; in ipmmu_domain_init_context()
531 if (!report_iommu_fault(&domain->io_domain, mmu->dev, iova, 0)) in ipmmu_domain_irq()
579 return &domain->io_domain; in __ipmmu_domain_alloc()
584 struct iommu_domain *io_domain = NULL; in ipmmu_domain_alloc() local
588 io_domain = __ipmmu_domain_alloc(type); in ipmmu_domain_alloc()
592 io_domain = __ipmmu_domain_alloc(type); in ipmmu_domain_alloc()
593 if (io_domain && iommu_get_dma_cookie(io_domain)) { in ipmmu_domain_alloc()
594 kfree(io_domain); in ipmmu_domain_alloc()
595 io_domain = NULL; in ipmmu_domain_alloc()
600 return io_domain; in ipmmu_domain_alloc()
603 static void ipmmu_domain_free(struct iommu_domain *io_domain) in ipmmu_domain_free() argument
605 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_domain_free()
611 iommu_put_dma_cookie(io_domain); in ipmmu_domain_free()
617 static int ipmmu_attach_device(struct iommu_domain *io_domain, in ipmmu_attach_device() argument
622 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_attach_device()
666 static void ipmmu_detach_device(struct iommu_domain *io_domain, in ipmmu_detach_device() argument
670 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_detach_device()
681 static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova, in ipmmu_map() argument
684 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_map()
692 static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova, in ipmmu_unmap() argument
695 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_unmap()
700 static void ipmmu_flush_iotlb_all(struct iommu_domain *io_domain) in ipmmu_flush_iotlb_all() argument
702 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_flush_iotlb_all()
708 static void ipmmu_iotlb_sync(struct iommu_domain *io_domain, in ipmmu_iotlb_sync() argument
711 ipmmu_flush_iotlb_all(io_domain); in ipmmu_iotlb_sync()
714 static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain, in ipmmu_iova_to_phys() argument
717 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain); in ipmmu_iova_to_phys()