diff options
author | Will Deacon <will@kernel.org> | 2019-08-23 15:05:45 +0100 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2019-08-23 15:05:45 +0100 |
commit | 1554240ff864da9eb99e2233d3faf191c567c47a (patch) | |
tree | 610e14f0e68dfd2807f4ca935433823b527041b3 /drivers/iommu/arm-smmu.h | |
parent | d720e64150c79d14f4faf931604faa1f0755134d (diff) | |
parent | a91bcc2b65370e7debf1fc26b93a4c2a54433220 (diff) |
Merge branches 'for-joerg/arm-smmu/smmu-v2' and 'for-joerg/arm-smmu/smmu-v3' into for-joerg/arm-smmu/updates
* for-joerg/arm-smmu/smmu-v2:
Refactoring to allow for implementation-specific hooks in 'arm-smmu-impl.c'
* for-joerg/arm-smmu/smmu-v3:
Support for deferred TLB invalidation and batching of commands
Rework ATC invalidation for ATS-enabled PCIe masters
Diffstat (limited to 'drivers/iommu/arm-smmu.h')
-rw-r--r-- | drivers/iommu/arm-smmu.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/iommu/arm-smmu.h b/drivers/iommu/arm-smmu.h index ac9eac966cf5..b19b6cae9b5e 100644 --- a/drivers/iommu/arm-smmu.h +++ b/drivers/iommu/arm-smmu.h @@ -304,10 +304,17 @@ enum arm_smmu_domain_stage { ARM_SMMU_DOMAIN_BYPASS, }; +struct arm_smmu_flush_ops { + struct iommu_flush_ops tlb; + void (*tlb_inv_range)(unsigned long iova, size_t size, size_t granule, + bool leaf, void *cookie); + void (*tlb_sync)(void *cookie); +}; + struct arm_smmu_domain { struct arm_smmu_device *smmu; struct io_pgtable_ops *pgtbl_ops; - const struct iommu_gather_ops *tlb_ops; + const struct arm_smmu_flush_ops *flush_ops; struct arm_smmu_cfg cfg; enum arm_smmu_domain_stage stage; bool non_strict; |