virtcca feature
Signed-off-by: l00500167 <lijunbin4(a)huawei.com>
---
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 14 ++++++++++++++
include/linux/iommu.h | 3 +++
2 files changed, 17 insertions(+)
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
index 859d21729..0f2acb4ed 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
@@ -625,6 +625,9 @@ struct arm_smmu_strtab_l1_desc {
struct arm_smmu_ste *l2ptr;
dma_addr_t l2ptr_dma;
+#ifdef CONFIG_CVM_HOST
+ bool is_sync;
+#endif
};
struct arm_smmu_ctx_desc {
@@ -750,6 +753,12 @@ struct arm_smmu_device {
struct mutex streams_mutex;
bool bypass;
+#ifdef CONFIG_CVM_HOST
+ int s_evtq_irq;
+ int s_gerr_irq;
+ resource_size_t ioaddr;
+ uint64_t id;
+#endif
};
struct arm_smmu_stream {
@@ -802,6 +811,11 @@ struct arm_smmu_domain {
spinlock_t devices_lock;
struct list_head mmu_notifiers;
+#ifdef CONFIG_CVM_HOST
+ bool secure;
+ struct list_head node;
+ struct kvm *kvm;
+#endif
};
static inline struct arm_smmu_domain *to_smmu_domain(struct iommu_domain *dom)
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index 1d70dd0d0..e3186fbd4 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -635,6 +635,9 @@ struct iommu_ops {
struct iommu_domain *blocked_domain;
struct iommu_domain *default_domain;
+#ifdef CONFIG_CVM_HOST
+ int (*iommu_enable_secure)(struct iommu_domain *domain);
+#endif
KABI_RESERVE(1)
KABI_RESERVE(2)
KABI_RESERVE(3)
--
2.25.1