summaryrefslogtreecommitdiffstats
path: root/include/asm-x86/amd_iommu_types.h
diff options
context:
space:
mode:
authorJoerg Roedel2008-09-11 16:51:41 +0200
committerIngo Molnar2008-09-19 12:59:15 +0200
commita80dc3e0e0dc8393158de317d66ae0f345dc58f9 (patch)
treed7e18a5d25a6dc1101fe699966a9b59b9b88a2f2 /include/asm-x86/amd_iommu_types.h
parentAMD IOMMU: save pci_dev instead of devid (diff)
downloadkernel-qcow2-linux-a80dc3e0e0dc8393158de317d66ae0f345dc58f9.tar.gz
kernel-qcow2-linux-a80dc3e0e0dc8393158de317d66ae0f345dc58f9.tar.xz
kernel-qcow2-linux-a80dc3e0e0dc8393158de317d66ae0f345dc58f9.zip
AMD IOMMU: add MSI interrupt support
The AMD IOMMU can generate interrupts for various reasons. This patch adds the basic interrupt enabling infrastructure to the driver. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86/amd_iommu_types.h')
-rw-r--r--include/asm-x86/amd_iommu_types.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/asm-x86/amd_iommu_types.h b/include/asm-x86/amd_iommu_types.h
index a5629a21557c..8533f09b34b7 100644
--- a/include/asm-x86/amd_iommu_types.h
+++ b/include/asm-x86/amd_iommu_types.h
@@ -37,6 +37,7 @@
/* Capability offsets used by the driver */
#define MMIO_CAP_HDR_OFFSET 0x00
#define MMIO_RANGE_OFFSET 0x0c
+#define MMIO_MISC_OFFSET 0x10
/* Masks, shifts and macros to parse the device range capability */
#define MMIO_RANGE_LD_MASK 0xff000000
@@ -48,6 +49,7 @@
#define MMIO_GET_LD(x) (((x) & MMIO_RANGE_LD_MASK) >> MMIO_RANGE_LD_SHIFT)
#define MMIO_GET_FD(x) (((x) & MMIO_RANGE_FD_MASK) >> MMIO_RANGE_FD_SHIFT)
#define MMIO_GET_BUS(x) (((x) & MMIO_RANGE_BUS_MASK) >> MMIO_RANGE_BUS_SHIFT)
+#define MMIO_MSI_NUM(x) ((x) & 0x1f)
/* Flag masks for the AMD IOMMU exclusion range */
#define MMIO_EXCL_ENABLE_MASK 0x01ULL
@@ -255,10 +257,15 @@ struct amd_iommu {
u8 *evt_buf;
/* size of event buffer */
u32 evt_buf_size;
+ /* MSI number for event interrupt */
+ u16 evt_msi_num;
/* if one, we need to send a completion wait command */
int need_sync;
+ /* true if interrupts for this IOMMU are already enabled */
+ bool int_enabled;
+
/* default dma_ops domain for that IOMMU */
struct dma_ops_domain *default_dom;
};