diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hotplug.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hotplug.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c index b62e3f8ad415..54208bef7a83 100644 --- a/drivers/gpu/drm/i915/intel_hotplug.c +++ b/drivers/gpu/drm/i915/intel_hotplug.c | |||
| @@ -219,7 +219,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work) | |||
| 219 | } | 219 | } |
| 220 | } | 220 | } |
| 221 | } | 221 | } |
| 222 | if (dev_priv->display.hpd_irq_setup) | 222 | if (dev_priv->display_irqs_enabled && dev_priv->display.hpd_irq_setup) |
| 223 | dev_priv->display.hpd_irq_setup(dev_priv); | 223 | dev_priv->display.hpd_irq_setup(dev_priv); |
| 224 | spin_unlock_irq(&dev_priv->irq_lock); | 224 | spin_unlock_irq(&dev_priv->irq_lock); |
| 225 | 225 | ||
| @@ -425,7 +425,7 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv, | |||
| 425 | } | 425 | } |
| 426 | } | 426 | } |
| 427 | 427 | ||
| 428 | if (storm_detected) | 428 | if (storm_detected && dev_priv->display_irqs_enabled) |
| 429 | dev_priv->display.hpd_irq_setup(dev_priv); | 429 | dev_priv->display.hpd_irq_setup(dev_priv); |
| 430 | spin_unlock(&dev_priv->irq_lock); | 430 | spin_unlock(&dev_priv->irq_lock); |
| 431 | 431 | ||
| @@ -471,10 +471,12 @@ void intel_hpd_init(struct drm_i915_private *dev_priv) | |||
| 471 | * Interrupt setup is already guaranteed to be single-threaded, this is | 471 | * Interrupt setup is already guaranteed to be single-threaded, this is |
| 472 | * just to make the assert_spin_locked checks happy. | 472 | * just to make the assert_spin_locked checks happy. |
| 473 | */ | 473 | */ |
| 474 | spin_lock_irq(&dev_priv->irq_lock); | 474 | if (dev_priv->display_irqs_enabled && dev_priv->display.hpd_irq_setup) { |
| 475 | if (dev_priv->display.hpd_irq_setup) | 475 | spin_lock_irq(&dev_priv->irq_lock); |
| 476 | dev_priv->display.hpd_irq_setup(dev_priv); | 476 | if (dev_priv->display_irqs_enabled) |
| 477 | spin_unlock_irq(&dev_priv->irq_lock); | 477 | dev_priv->display.hpd_irq_setup(dev_priv); |
| 478 | spin_unlock_irq(&dev_priv->irq_lock); | ||
| 479 | } | ||
| 478 | } | 480 | } |
| 479 | 481 | ||
| 480 | static void i915_hpd_poll_init_work(struct work_struct *work) | 482 | static void i915_hpd_poll_init_work(struct work_struct *work) |
