@@ -224,7 +224,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
224
224
}
225
225
}
226
226
}
227
- if (dev_priv -> display .hpd_irq_setup )
227
+ if (dev_priv -> display_irqs_enabled && dev_priv -> display .hpd_irq_setup )
228
228
dev_priv -> display .hpd_irq_setup (dev_priv );
229
229
spin_unlock_irq (& dev_priv -> irq_lock );
230
230
@@ -430,7 +430,7 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
430
430
}
431
431
}
432
432
433
- if (storm_detected )
433
+ if (storm_detected && dev_priv -> display_irqs_enabled )
434
434
dev_priv -> display .hpd_irq_setup (dev_priv );
435
435
spin_unlock (& dev_priv -> irq_lock );
436
436
@@ -476,10 +476,12 @@ void intel_hpd_init(struct drm_i915_private *dev_priv)
476
476
* Interrupt setup is already guaranteed to be single-threaded, this is
477
477
* just to make the assert_spin_locked checks happy.
478
478
*/
479
- spin_lock_irq (& dev_priv -> irq_lock );
480
- if (dev_priv -> display .hpd_irq_setup )
481
- dev_priv -> display .hpd_irq_setup (dev_priv );
482
- spin_unlock_irq (& dev_priv -> irq_lock );
479
+ if (dev_priv -> display_irqs_enabled && dev_priv -> display .hpd_irq_setup ) {
480
+ spin_lock_irq (& dev_priv -> irq_lock );
481
+ if (dev_priv -> display_irqs_enabled )
482
+ dev_priv -> display .hpd_irq_setup (dev_priv );
483
+ spin_unlock_irq (& dev_priv -> irq_lock );
484
+ }
483
485
}
484
486
485
487
static void i915_hpd_poll_init_work (struct work_struct * work )
0 commit comments