[PATCH 4/8] drm/i915/irq: split out i915_display_irq_postinstall()

Gustavo Sousa gustavo.sousa at intel.com
Tue May 6 21:39:57 UTC 2025


Quoting Jani Nikula (2025-05-06 10:06:46-03:00)
>Split out i915_display_irq_postinstall() similar to other platforms.
>
>Signed-off-by: Jani Nikula <jani.nikula at intel.com>

Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>

>---
> drivers/gpu/drm/i915/display/intel_display_irq.c | 16 ++++++++++++++++
> drivers/gpu/drm/i915/display/intel_display_irq.h |  1 +
> drivers/gpu/drm/i915/i915_irq.c                  |  9 +--------
> 3 files changed, 18 insertions(+), 8 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
>index a0e08b8752e7..77cdd1ea5d00 100644
>--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
>+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
>@@ -1902,6 +1902,22 @@ void i9xx_display_irq_reset(struct intel_display *display)
>         i9xx_pipestat_irq_reset(display);
> }
> 
>+void i915_display_irq_postinstall(struct intel_display *display)
>+{
>+        struct drm_i915_private *dev_priv = to_i915(display->drm);
>+
>+        /*
>+         * Interrupt setup is already guaranteed to be single-threaded, this is
>+         * just to make the assert_spin_locked check happy.
>+         */
>+        spin_lock_irq(&dev_priv->irq_lock);
>+        i915_enable_pipestat(display, PIPE_A, PIPE_CRC_DONE_INTERRUPT_STATUS);
>+        i915_enable_pipestat(display, PIPE_B, PIPE_CRC_DONE_INTERRUPT_STATUS);
>+        spin_unlock_irq(&dev_priv->irq_lock);
>+
>+        i915_enable_asle_pipestat(display);
>+}
>+
> static u32 vlv_error_mask(void)
> {
>         /* TODO enable other errors too? */
>diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.h b/drivers/gpu/drm/i915/display/intel_display_irq.h
>index 5422426c6843..8fdce804c9d7 100644
>--- a/drivers/gpu/drm/i915/display/intel_display_irq.h
>+++ b/drivers/gpu/drm/i915/display/intel_display_irq.h
>@@ -61,6 +61,7 @@ void vlv_display_irq_reset(struct intel_display *display);
> void gen8_display_irq_reset(struct intel_display *display);
> void gen11_display_irq_reset(struct intel_display *display);
> 
>+void i915_display_irq_postinstall(struct intel_display *display);
> void vlv_display_irq_postinstall(struct intel_display *display);
> void ilk_de_irq_postinstall(struct intel_display *display);
> void gen8_de_irq_postinstall(struct intel_display *display);
>diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>index 19d8a7c29eac..30c78177ae0d 100644
>--- a/drivers/gpu/drm/i915/i915_irq.c
>+++ b/drivers/gpu/drm/i915/i915_irq.c
>@@ -935,14 +935,7 @@ static void i915_irq_postinstall(struct drm_i915_private *dev_priv)
> 
>         gen2_irq_init(uncore, GEN2_IRQ_REGS, dev_priv->irq_mask, enable_mask);
> 
>-        /* Interrupt setup is already guaranteed to be single-threaded, this is
>-         * just to make the assert_spin_locked check happy. */
>-        spin_lock_irq(&dev_priv->irq_lock);
>-        i915_enable_pipestat(display, PIPE_A, PIPE_CRC_DONE_INTERRUPT_STATUS);
>-        i915_enable_pipestat(display, PIPE_B, PIPE_CRC_DONE_INTERRUPT_STATUS);
>-        spin_unlock_irq(&dev_priv->irq_lock);
>-
>-        i915_enable_asle_pipestat(display);
>+        i915_display_irq_postinstall(display);
> }
> 
> static irqreturn_t i915_irq_handler(int irq, void *arg)
>-- 
>2.39.5
>


More information about the Intel-xe mailing list