diff options
Diffstat (limited to 'sys/x86/x86/msi.c')
-rw-r--r-- | sys/x86/x86/msi.c | 19 |
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); |