Skip to content

Commit 0f9dd43

Browse files
committed
drm/i915/irq: move locking inside vlv_display_irq_postinstall()
All users of vlv_display_irq_postinstall() outside of intel_display_irq.c have a lock/unlock pair. Move the locking inside the function. Add an unlocked variant for internal use, similar to the _vlv_display_irq_reset() and vlv_display_irq_reset() functions. Reviewed-by: Gustavo Sousa <[email protected]> Link: https://lore.kernel.org/r/93ea785d2d9bdb4e18328aa42a00a492d9d783c0.1746536745.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <[email protected]>
1 parent 5d22f72 commit 0f9dd43

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

drivers/gpu/drm/i915/display/intel_display_irq.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,16 +1908,13 @@ static u32 vlv_error_mask(void)
19081908
return VLV_ERROR_PAGE_TABLE;
19091909
}
19101910

1911-
void vlv_display_irq_postinstall(struct intel_display *display)
1911+
static void _vlv_display_irq_postinstall(struct intel_display *display)
19121912
{
19131913
struct drm_i915_private *dev_priv = to_i915(display->drm);
19141914
u32 pipestat_mask;
19151915
u32 enable_mask;
19161916
enum pipe pipe;
19171917

1918-
if (!display->irq.vlv_display_irqs_enabled)
1919-
return;
1920-
19211918
if (display->platform.cherryview)
19221919
intel_de_write(display, DPINVGTT,
19231920
DPINVGTT_STATUS_MASK_CHV |
@@ -1954,6 +1951,16 @@ void vlv_display_irq_postinstall(struct intel_display *display)
19541951
intel_display_irq_regs_init(display, VLV_IRQ_REGS, dev_priv->irq_mask, enable_mask);
19551952
}
19561953

1954+
void vlv_display_irq_postinstall(struct intel_display *display)
1955+
{
1956+
struct drm_i915_private *dev_priv = to_i915(display->drm);
1957+
1958+
spin_lock_irq(&dev_priv->irq_lock);
1959+
if (display->irq.vlv_display_irqs_enabled)
1960+
_vlv_display_irq_postinstall(display);
1961+
spin_unlock_irq(&dev_priv->irq_lock);
1962+
}
1963+
19571964
void ibx_display_irq_reset(struct intel_display *display)
19581965
{
19591966
struct drm_i915_private *i915 = to_i915(display->drm);
@@ -2126,7 +2133,7 @@ void valleyview_enable_display_irqs(struct intel_display *display)
21262133

21272134
if (intel_irqs_enabled(dev_priv)) {
21282135
_vlv_display_irq_reset(display);
2129-
vlv_display_irq_postinstall(display);
2136+
_vlv_display_irq_postinstall(display);
21302137
}
21312138

21322139
out:

drivers/gpu/drm/i915/i915_irq.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -768,9 +768,7 @@ static void valleyview_irq_postinstall(struct drm_i915_private *dev_priv)
768768

769769
gen5_gt_irq_postinstall(to_gt(dev_priv));
770770

771-
spin_lock_irq(&dev_priv->irq_lock);
772771
vlv_display_irq_postinstall(display);
773-
spin_unlock_irq(&dev_priv->irq_lock);
774772

775773
intel_uncore_write(&dev_priv->uncore, VLV_MASTER_IER, MASTER_INTERRUPT_ENABLE);
776774
intel_uncore_posting_read(&dev_priv->uncore, VLV_MASTER_IER);
@@ -827,9 +825,7 @@ static void cherryview_irq_postinstall(struct drm_i915_private *dev_priv)
827825

828826
gen8_gt_irq_postinstall(to_gt(dev_priv));
829827

830-
spin_lock_irq(&dev_priv->irq_lock);
831828
vlv_display_irq_postinstall(display);
832-
spin_unlock_irq(&dev_priv->irq_lock);
833829

834830
intel_uncore_write(&dev_priv->uncore, GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
835831
intel_uncore_posting_read(&dev_priv->uncore, GEN8_MASTER_IRQ);

0 commit comments

Comments
 (0)