summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pci/drm/i915/gt/intel_engine_cs.c4
-rw-r--r--sys/dev/pci/drm/i915/i915_irq.c4
-rw-r--r--sys/dev/pci/drm/include/linux/hardirq.h2
3 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/pci/drm/i915/gt/intel_engine_cs.c b/sys/dev/pci/drm/i915/gt/intel_engine_cs.c
index fbb0eeeee17..1262799d691 100644
--- a/sys/dev/pci/drm/i915/gt/intel_engine_cs.c
+++ b/sys/dev/pci/drm/i915/gt/intel_engine_cs.c
@@ -1122,10 +1122,10 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
/* Waiting to drain ELSP? */
if (execlists_active(&engine->execlists)) {
-#ifdef notyet
+#ifdef __linux__
synchronize_hardirq(engine->i915->drm.pdev->irq);
#else
- STUB();
+ intr_barrier(engine->i915->irqh);
#endif
intel_engine_flush_submission(engine);
diff --git a/sys/dev/pci/drm/i915/i915_irq.c b/sys/dev/pci/drm/i915/i915_irq.c
index 081c5baf281..e8f3905a90a 100644
--- a/sys/dev/pci/drm/i915/i915_irq.c
+++ b/sys/dev/pci/drm/i915/i915_irq.c
@@ -4172,5 +4172,9 @@ bool intel_irqs_enabled(struct drm_i915_private *dev_priv)
void intel_synchronize_irq(struct drm_i915_private *i915)
{
+#ifdef __linux__
synchronize_irq(i915->drm.pdev->irq);
+#else
+ intr_barrier(i915->irqh);
+#endif
}
diff --git a/sys/dev/pci/drm/include/linux/hardirq.h b/sys/dev/pci/drm/include/linux/hardirq.h
index 6144bb0dc32..094065e48ac 100644
--- a/sys/dev/pci/drm/include/linux/hardirq.h
+++ b/sys/dev/pci/drm/include/linux/hardirq.h
@@ -3,6 +3,4 @@
#ifndef _LINUX_HARDIRQ_H
#define _LINUX_HARDIRQ_H
-#define synchronize_irq(x)
-
#endif