Re: 4.0.8->4.1.3 : after resume from s2ram both internal and external display of a docked ThinkPad ate black

From: Toralf FÃrster
Date: Tue Aug 04 2015 - 08:30:29 EST


On 08/02/2015 09:43 AM, Pavel Machek wrote:
> Any chance to bisect it?
Did it.

FWIW: the mentioned commit was introduced between 3.18 and 3.19.
But my system (hardened 64 bit Gentoo) did not suffer from it till version 4.0.8.
The hardened kernel 4.1.x was the first where the bug was visible at my docked environment too.



commit e7d6f7d708290da1b7c92f533444b042c79412e0
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Dec 8 13:23:37 2014 +1000

drm/i915: resume MST after reading back hw state

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@xxxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 1e9c136..f990ab4 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -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


--
Toralf, pgp key: 872AE508 0076E94E
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/