Loading drivers/iommu/iommu.c +7 −0 Original line number Diff line number Diff line Loading @@ -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) Loading include/linux/iommu.h +9 −0 Original line number Diff line number Diff line Loading @@ -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; }; Loading Loading @@ -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, Loading Loading @@ -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) { Loading Loading
drivers/iommu/iommu.c +7 −0 Original line number Diff line number Diff line Loading @@ -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) Loading
include/linux/iommu.h +9 −0 Original line number Diff line number Diff line Loading @@ -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; }; Loading Loading @@ -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, Loading Loading @@ -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) { Loading