[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