drm/i915: add DP 1.2 MST support (v0.7)
[cascardo/linux.git] / drivers / gpu / drm / i915 / i915_drv.c
index 83cb43a..a361bb9 100644 (file)
@@ -518,7 +518,6 @@ static int i915_drm_freeze(struct drm_device *dev)
 
                flush_delayed_work(&dev_priv->rps.delayed_resume_work);
 
-               intel_runtime_pm_disable_interrupts(dev);
 
                intel_suspend_gt_powersave(dev);
 
@@ -532,6 +531,9 @@ static int i915_drm_freeze(struct drm_device *dev)
                }
                drm_modeset_unlock_all(dev);
 
+               intel_dp_mst_suspend(dev);
+               intel_runtime_pm_disable_interrupts(dev);
+
                intel_modeset_suspend_hw(dev);
        }
 
@@ -646,6 +648,15 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings)
 
                intel_modeset_init_hw(dev);
 
+               {
+                       unsigned long irqflags;
+                       spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
+                       if (dev_priv->display.hpd_irq_setup)
+                               dev_priv->display.hpd_irq_setup(dev);
+                       spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
+               }
+
+               intel_dp_mst_resume(dev);
                drm_modeset_lock_all(dev);
                intel_modeset_setup_hw_state(dev, true);
                drm_modeset_unlock_all(dev);