diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 2c5ee965e473..0a8eceb75902 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -495,6 +495,7 @@ static int i915_drm_freeze(struct drm_device *dev) | |||
495 | intel_modeset_disable(dev); | 495 | intel_modeset_disable(dev); |
496 | 496 | ||
497 | drm_irq_uninstall(dev); | 497 | drm_irq_uninstall(dev); |
498 | dev_priv->enable_hotplug_processing = false; | ||
498 | } | 499 | } |
499 | 500 | ||
500 | i915_save_state(dev); | 501 | i915_save_state(dev); |
@@ -568,10 +569,20 @@ static int __i915_drm_thaw(struct drm_device *dev) | |||
568 | error = i915_gem_init_hw(dev); | 569 | error = i915_gem_init_hw(dev); |
569 | mutex_unlock(&dev->struct_mutex); | 570 | mutex_unlock(&dev->struct_mutex); |
570 | 571 | ||
572 | /* We need working interrupts for modeset enabling ... */ | ||
573 | drm_irq_install(dev); | ||
574 | |||
571 | intel_modeset_init_hw(dev); | 575 | intel_modeset_init_hw(dev); |
572 | intel_modeset_setup_hw_state(dev, false); | 576 | intel_modeset_setup_hw_state(dev, false); |
573 | drm_irq_install(dev); | 577 | |
578 | /* | ||
579 | * ... but also need to make sure that hotplug processing | ||
580 | * doesn't cause havoc. Like in the driver load code we don't | ||
581 | * bother with the tiny race here where we might loose hotplug | ||
582 | * notifications. | ||
583 | * */ | ||
574 | intel_hpd_init(dev); | 584 | intel_hpd_init(dev); |
585 | dev_priv->enable_hotplug_processing = true; | ||
575 | } | 586 | } |
576 | 587 | ||
577 | intel_opregion_init(dev); | 588 | intel_opregion_init(dev); |