aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/intel-iommu.h
diff options
context:
space:
mode:
authorYouquan Song <youquan.song@intel.com>2008-10-16 19:31:56 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2008-10-17 03:05:01 -0400
commita77b67d4023770805141014b8fa9eb5467457817 (patch)
tree661dda1d33b8892f1e1fa2508565a288712592b9 /include/linux/intel-iommu.h
parent3481f21097cb560392c411377893b5109fbde557 (diff)
dmar: Use queued invalidation interface for IOTLB and context invalidation
If queued invalidation interface is available and enabled, queued invalidation interface will be used instead of the register based interface. According to Vt-d2 specification, when queued invalidation is enabled, invalidation command submit works only through invalidation queue and not through the command registers interface. Signed-off-by: Youquan Song <youquan.song@intel.com> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'include/linux/intel-iommu.h')
-rw-r--r--include/linux/intel-iommu.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/intel-iommu.h b/include/linux/intel-iommu.h
index 0c5f5e49107b..afb0d2a5b7cd 100644
--- a/include/linux/intel-iommu.h
+++ b/include/linux/intel-iommu.h
@@ -278,6 +278,13 @@ struct ir_table {
278}; 278};
279#endif 279#endif
280 280
281struct iommu_flush {
282 int (*flush_context)(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm,
283 u64 type, int non_present_entry_flush);
284 int (*flush_iotlb)(struct intel_iommu *iommu, u16 did, u64 addr,
285 unsigned int size_order, u64 type, int non_present_entry_flush);
286};
287
281struct intel_iommu { 288struct intel_iommu {
282 void __iomem *reg; /* Pointer to hardware regs, virtual addr */ 289 void __iomem *reg; /* Pointer to hardware regs, virtual addr */
283 u64 cap; 290 u64 cap;
@@ -297,6 +304,7 @@ struct intel_iommu {
297 unsigned char name[7]; /* Device Name */ 304 unsigned char name[7]; /* Device Name */
298 struct msi_msg saved_msg; 305 struct msi_msg saved_msg;
299 struct sys_device sysdev; 306 struct sys_device sysdev;
307 struct iommu_flush flush;
300#endif 308#endif
301 struct q_inval *qi; /* Queued invalidation info */ 309 struct q_inval *qi; /* Queued invalidation info */
302#ifdef CONFIG_INTR_REMAP 310#ifdef CONFIG_INTR_REMAP