intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Resume DP MST before doing any kind of modesetting
@ 2016-02-23 22:11 Lyude
  2016-02-24  2:33 ` Thulasimani, Sivakumar
  0 siblings, 1 reply; 13+ messages in thread
From: Lyude @ 2016-02-23 22:11 UTC (permalink / raw)
  To: intel-gfx
  Cc: Lyude, stable, Daniel Vetter, Jani Nikula, David Airlie,
	open list:INTEL DRM DRIVERS excluding Poulsbo, Moorestow..., linux-kernel@vger.kernel.org open list

As it turns out, resuming DP MST is racey since we don't make sure MST
is ready before we start modesetting, it just usually happens to be
ready in time. This isn't the case on all systems, particularly a
ThinkPad T560 with displays connected through the dock. On these
systems, resuming the laptop while connected to the dock usually results
in blank monitors. Making sure MST is ready before doing any kind of
modesetting fixes this issue.

We originally changed the resume order in

	commit e7d6f7d70829 ("drm/i915: resume MST after reading back hw state")

to fix a ton of WARN_ON's after resume, but this doesn't seem to be an
issue now anyhow.

CC: stable@vger.kernel.org
Signed-off-by: Lyude <cpaul@redhat.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index f357058..4dcf3dd 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -733,6 +733,14 @@ static int i915_drm_resume(struct drm_device *dev)
 	intel_opregion_setup(dev);
 
 	intel_init_pch_refclk(dev);
+
+	/*
+	 * We need to make sure that we resume MST before doing anything
+	 * display related, otherwise we risk trying to bring up a display on
+	 * MST before the hub is actually ready
+	 */
+	intel_dp_mst_resume(dev);
+
 	drm_mode_config_reset(dev);
 
 	/*
@@ -765,8 +773,6 @@ static int i915_drm_resume(struct drm_device *dev)
 	intel_display_resume(dev);
 	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
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-03-02 15:28 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-23 22:11 [PATCH] drm/i915: Resume DP MST before doing any kind of modesetting Lyude
2016-02-24  2:33 ` Thulasimani, Sivakumar
2016-02-25 15:09   ` [Intel-gfx] " Lyude Paul
2016-02-25 21:05   ` Rob Clark
2016-02-29 16:12   ` Daniel Vetter
2016-02-29 21:33     ` [Intel-gfx] " Dave Airlie
2016-03-02  9:27       ` Daniel Vetter
2016-02-29 23:33     ` Rob Clark
2016-03-01  0:47       ` Thulasimani, Sivakumar
2016-03-01  1:38         ` Rob Clark
2016-03-02  9:31         ` Daniel Vetter
2016-03-02  9:29       ` Daniel Vetter
2016-03-02 15:28         ` Rob Clark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).