@@ -219,7 +219,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
219219 }
220220 }
221221 }
222- if (dev_priv -> display .hpd_irq_setup )
222+ if (dev_priv -> display_irqs_enabled && dev_priv -> display .hpd_irq_setup )
223223 dev_priv -> display .hpd_irq_setup (dev_priv );
224224 spin_unlock_irq (& dev_priv -> irq_lock );
225225
@@ -425,7 +425,7 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
425425 }
426426 }
427427
428- if (storm_detected )
428+ if (storm_detected && dev_priv -> display_irqs_enabled )
429429 dev_priv -> display .hpd_irq_setup (dev_priv );
430430 spin_unlock (& dev_priv -> irq_lock );
431431
@@ -471,10 +471,12 @@ void intel_hpd_init(struct drm_i915_private *dev_priv)
471471 * Interrupt setup is already guaranteed to be single-threaded, this is
472472 * just to make the assert_spin_locked checks happy.
473473 */
474- spin_lock_irq (& dev_priv -> irq_lock );
475- if (dev_priv -> display .hpd_irq_setup )
476- dev_priv -> display .hpd_irq_setup (dev_priv );
477- spin_unlock_irq (& dev_priv -> irq_lock );
474+ if (dev_priv -> display_irqs_enabled && dev_priv -> display .hpd_irq_setup ) {
475+ spin_lock_irq (& dev_priv -> irq_lock );
476+ if (dev_priv -> display_irqs_enabled )
477+ dev_priv -> display .hpd_irq_setup (dev_priv );
478+ spin_unlock_irq (& dev_priv -> irq_lock );
479+ }
478480}
479481
480482static void i915_hpd_poll_init_work (struct work_struct * work )
0 commit comments