[PATCH 2/8] drm/i915/irq: move locking inside valleyview_{enable, disable}_display_irqs()

Gustavo Sousa gustavo.sousa at intel.com
Tue May 6 21:38:43 UTC 2025


Quoting Jani Nikula (2025-05-06 10:06:44-03:00)
>All users of valleyview_enable_display_irqs() and
>valleyview_disable_display_irqs() have a lock/unlock pair. Move the
>locking inside the functions.
>
>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    | 13 +++++++++----
> .../gpu/drm/i915/display/intel_display_power_well.c |  5 -----
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
>index 22bb0fc10736..3d2294a4d83d 100644
>--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
>+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
>@@ -2117,10 +2117,10 @@ void valleyview_enable_display_irqs(struct intel_display *display)
> {
>         struct drm_i915_private *dev_priv = to_i915(display->drm);
> 
>-        lockdep_assert_held(&dev_priv->irq_lock);
>+        spin_lock_irq(&dev_priv->irq_lock);
> 
>         if (display->irq.vlv_display_irqs_enabled)
>-                return;
>+                goto out;
> 
>         display->irq.vlv_display_irqs_enabled = true;
> 
>@@ -2128,21 +2128,26 @@ void valleyview_enable_display_irqs(struct intel_display *display)
>                 _vlv_display_irq_reset(display);
>                 vlv_display_irq_postinstall(display);
>         }
>+
>+out:
>+        spin_unlock_irq(&dev_priv->irq_lock);
> }
> 
> void valleyview_disable_display_irqs(struct intel_display *display)
> {
>         struct drm_i915_private *dev_priv = to_i915(display->drm);
> 
>-        lockdep_assert_held(&dev_priv->irq_lock);
>+        spin_lock_irq(&dev_priv->irq_lock);
> 
>         if (!display->irq.vlv_display_irqs_enabled)
>-                return;
>+                goto out;
> 
>         display->irq.vlv_display_irqs_enabled = false;
> 
>         if (intel_irqs_enabled(dev_priv))
>                 _vlv_display_irq_reset(display);
>+out:
>+        spin_unlock_irq(&dev_priv->irq_lock);
> }
> 
> void ilk_de_irq_postinstall(struct intel_display *display)
>diff --git a/drivers/gpu/drm/i915/display/intel_display_power_well.c b/drivers/gpu/drm/i915/display/intel_display_power_well.c
>index 6335fa909a7b..b104bce0e14d 100644
>--- a/drivers/gpu/drm/i915/display/intel_display_power_well.c
>+++ b/drivers/gpu/drm/i915/display/intel_display_power_well.c
>@@ -1212,7 +1212,6 @@ static void vlv_init_display_clock_gating(struct intel_display *display)
> 
> static void vlv_display_power_well_init(struct intel_display *display)
> {
>-        struct drm_i915_private *dev_priv = to_i915(display->drm);
>         struct intel_encoder *encoder;
>         enum pipe pipe;
> 
>@@ -1236,9 +1235,7 @@ static void vlv_display_power_well_init(struct intel_display *display)
> 
>         vlv_init_display_clock_gating(display);
> 
>-        spin_lock_irq(&dev_priv->irq_lock);
>         valleyview_enable_display_irqs(display);
>-        spin_unlock_irq(&dev_priv->irq_lock);
> 
>         /*
>          * During driver initialization/resume we can avoid restoring the
>@@ -1265,9 +1262,7 @@ static void vlv_display_power_well_deinit(struct intel_display *display)
> {
>         struct drm_i915_private *dev_priv = to_i915(display->drm);
> 
>-        spin_lock_irq(&dev_priv->irq_lock);
>         valleyview_disable_display_irqs(display);
>-        spin_unlock_irq(&dev_priv->irq_lock);
> 
>         /* make sure we're done processing display irqs */
>         intel_synchronize_irq(dev_priv);
>-- 
>2.39.5
>


More information about the Intel-xe mailing list