summaryrefslogtreecommitdiff
path: root/sys/x86/x86/msi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/x86/x86/msi.c')
-rw-r--r--sys/x86/x86/msi.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/sys/x86/x86/msi.c b/sys/x86/x86/msi.c
index 12fc85eb21c9..f85d4a5161e5 100644
--- a/sys/x86/x86/msi.c
+++ b/sys/x86/x86/msi.c
@@ -40,6 +40,7 @@
__FBSDID("$FreeBSD$");
#include "opt_acpi.h"
+#include "opt_iommu.h"
#include <sys/param.h>
#include <sys/bus.h>
@@ -383,7 +384,7 @@ msi_alloc(device_t dev, int count, int maxcount, int *irqs)
struct msi_intsrc *msi, *fsrc;
u_int cpu, domain, *mirqs;
int cnt, i, vector;
-#ifdef ACPI_DMAR
+#ifdef IOMMU
u_int cookies[count];
int error;
#endif
@@ -449,7 +450,7 @@ again:
return (ENOSPC);
}
-#ifdef ACPI_DMAR
+#ifdef IOMMU
mtx_unlock(&msi_lock);
error = iommu_alloc_msi_intr(dev, cookies, count);
mtx_lock(&msi_lock);
@@ -531,7 +532,7 @@ msi_release(int *irqs, int count)
msi = (struct msi_intsrc *)intr_lookup_source(irqs[i]);
KASSERT(msi->msi_first == first, ("message not in group"));
KASSERT(msi->msi_dev == first->msi_dev, ("owner mismatch"));
-#ifdef ACPI_DMAR
+#ifdef IOMMU
iommu_unmap_msi_intr(first->msi_dev, msi->msi_remap_cookie);
#endif
msi->msi_first = NULL;
@@ -541,7 +542,7 @@ msi_release(int *irqs, int count)
}
/* Clear out the first message. */
-#ifdef ACPI_DMAR
+#ifdef IOMMU
mtx_unlock(&msi_lock);
iommu_unmap_msi_intr(first->msi_dev, first->msi_remap_cookie);
mtx_lock(&msi_lock);
@@ -564,7 +565,7 @@ msi_map(int irq, uint64_t *addr, uint32_t *data)
{
struct msi_intsrc *msi;
int error;
-#ifdef ACPI_DMAR
+#ifdef IOMMU
struct msi_intsrc *msi1;
int i, k;
#endif
@@ -595,7 +596,7 @@ msi_map(int irq, uint64_t *addr, uint32_t *data)
msi = msi->msi_first;
}
-#ifdef ACPI_DMAR
+#ifdef IOMMU
if (!msi->msi_msix) {
for (k = msi->msi_count - 1, i = first_msi_irq; k > 0 &&
i < first_msi_irq + num_msi_irqs; i++) {
@@ -633,7 +634,7 @@ msix_alloc(device_t dev, int *irq)
struct msi_intsrc *msi;
u_int cpu, domain;
int i, vector;
-#ifdef ACPI_DMAR
+#ifdef IOMMU
u_int cookie;
int error;
#endif
@@ -684,7 +685,7 @@ again:
}
msi->msi_dev = dev;
-#ifdef ACPI_DMAR
+#ifdef IOMMU
mtx_unlock(&msi_lock);
error = iommu_alloc_msi_intr(dev, &cookie, 1);
mtx_lock(&msi_lock);
@@ -739,7 +740,7 @@ msix_release(int irq)
KASSERT(msi->msi_dev != NULL, ("unowned message"));
/* Clear out the message. */
-#ifdef ACPI_DMAR
+#ifdef IOMMU
mtx_unlock(&msi_lock);
iommu_unmap_msi_intr(msi->msi_dev, msi->msi_remap_cookie);
mtx_lock(&msi_lock);