Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87585541 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "iommu: support querying IOVA coherency"

parents 09d27a06 90d80a06
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1336,6 +1336,13 @@ phys_addr_t iommu_iova_to_phys_hard(struct iommu_domain *domain,
	return domain->ops->iova_to_phys_hard(domain, iova);
}

bool iommu_is_iova_coherent(struct iommu_domain *domain, dma_addr_t iova)
{
	if (unlikely(domain->ops->is_iova_coherent == NULL))
		return 0;

	return domain->ops->is_iova_coherent(domain, iova);
}
static unsigned long iommu_get_pgsize_bitmap(struct iommu_domain *domain)
{
	if (domain->ops->get_pgsize_bitmap)
+9 −0
Original line number Diff line number Diff line
@@ -237,6 +237,7 @@ struct iommu_ops {
#endif

	unsigned long (*get_pgsize_bitmap)(struct iommu_domain *domain);
	bool (*is_iova_coherent)(struct iommu_domain *domain, dma_addr_t iova);
	unsigned long pgsize_bitmap;
	void *priv;
};
@@ -273,6 +274,8 @@ extern size_t default_iommu_map_sg(struct iommu_domain *domain, unsigned long io
extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova);
extern phys_addr_t iommu_iova_to_phys_hard(struct iommu_domain *domain,
					   dma_addr_t iova);
extern bool iommu_is_iova_coherent(struct iommu_domain *domain,
				dma_addr_t iova);
extern void iommu_set_fault_handler(struct iommu_domain *domain,
			iommu_fault_handler_t handler, void *token);
extern void iommu_trigger_fault(struct iommu_domain *domain,
@@ -505,6 +508,12 @@ static inline phys_addr_t iommu_iova_to_phys_hard(struct iommu_domain *domain,
	return 0;
}

static inline bool iommu_is_iova_coherent(struct iommu_domain *domain,
					  dma_addr_t iova)
{
	return 0;
}

static inline void iommu_set_fault_handler(struct iommu_domain *domain,
				iommu_fault_handler_t handler, void *token)
{