summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorYu Zhao <yu.zhao@intel.com>2009-05-18 13:51:34 +0800
committerDavid Woodhouse <David.Woodhouse@intel.com>2009-05-18 14:45:09 +0100
commitaa5d2b515b6fca5f8a56eac84f7fa0a68c1ce9b7 (patch)
treec98753254dfe2f3e54a4c38c9191ab5f4afb4c39 /include
parente277d2fc79d6abb86fafadb58dca0b9c498a9aa7 (diff)
downloadop-kernel-dev-aa5d2b515b6fca5f8a56eac84f7fa0a68c1ce9b7.zip
op-kernel-dev-aa5d2b515b6fca5f8a56eac84f7fa0a68c1ce9b7.tar.gz
VT-d: parse ATSR in DMA Remapping Reporting Structure
Parse the Root Port ATS Capability Reporting Structure in the DMA Remapping Reporting Structure ACPI table. Signed-off-by: Yu Zhao <yu.zhao@intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/dmar.h9
-rw-r--r--include/linux/intel-iommu.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/dmar.h b/include/linux/dmar.h
index e397dc3..7c9a207 100644
--- a/include/linux/dmar.h
+++ b/include/linux/dmar.h
@@ -185,6 +185,15 @@ struct dmar_rmrr_unit {
#define for_each_rmrr_units(rmrr) \
list_for_each_entry(rmrr, &dmar_rmrr_units, list)
+
+struct dmar_atsr_unit {
+ struct list_head list; /* list of ATSR units */
+ struct acpi_dmar_header *hdr; /* ACPI header */
+ struct pci_dev **devices; /* target devices */
+ int devices_cnt; /* target device count */
+ u8 include_all:1; /* include all ports */
+};
+
/* Intel DMAR initialization functions */
extern int intel_iommu_init(void);
#else
diff --git a/include/linux/intel-iommu.h b/include/linux/intel-iommu.h
index 29e05a0..0a1939f 100644
--- a/include/linux/intel-iommu.h
+++ b/include/linux/intel-iommu.h
@@ -331,6 +331,7 @@ static inline void __iommu_flush_cache(
}
extern struct dmar_drhd_unit * dmar_find_matched_drhd_unit(struct pci_dev *dev);
+extern int dmar_find_matched_atsr_unit(struct pci_dev *dev);
extern int alloc_iommu(struct dmar_drhd_unit *drhd);
extern void free_iommu(struct intel_iommu *iommu);
OpenPOWER on IntegriCloud