drm/i915: resume MST after reading back hw state
authorDave Airlie <airlied@redhat.com>
Mon, 8 Dec 2014 03:23:37 +0000 (13:23 +1000)
committerJani Nikula <jani.nikula@intel.com>
Mon, 8 Dec 2014 12:07:52 +0000 (14:07 +0200)
Otherwise the MST resume paths can hit DPMS paths
which hit state checker paths, which hit WARN_ON,
because the state checker is inconsistent with the
hw.

This fixes a bunch of WARN_ON's on resume after
undocking.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_drv.c

index 1e9c136a874cf1741e09aecc33c6cea37e26e1d4..f990ab4c3efbfbe1f91f15cc89eda8b5eb0fa64d 100644 (file)
@@ -706,11 +706,12 @@ static int i915_drm_resume(struct drm_device *dev)
                        dev_priv->display.hpd_irq_setup(dev);
                spin_unlock_irq(&dev_priv->irq_lock);
 
-               intel_dp_mst_resume(dev);
                drm_modeset_lock_all(dev);
                intel_modeset_setup_hw_state(dev, true);
                drm_modeset_unlock_all(dev);
 
+               intel_dp_mst_resume(dev);
+
                /*
                 * ... but also need to make sure that hotplug processing
                 * doesn't cause havoc. Like in the driver load code we don't