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

Toralf Förster toralf.foerster at gmx.de
Fri Oct 30 02:38:18 PDT 2015


On 10/29/2015 10:49 PM, Pavel Machek wrote:
> On Sun 2015-10-04 18:30:14, Toralf Förster wrote:
>> On 08/04/2015 02:29 PM, Toralf Förster wrote:
>>> 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 at redhat.com>
>>> 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 at redhat.com>
>>>     Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>>>     Cc: stable at vger.kernel.org
>>>     Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>>>
>>
>> Is there anything else what I can do ?
>>
>> Current kernels up to 4.2.3 and 4.3-rc3 (not hardened) shows this issue here at my system.
> 
> Yes. Now you ask Dave Airlie <airlied at redhat.com> to fix it. If that

Dear Dave,

please fix it.

Here's a work around which works for me since kernel 4.1.x :

diff --git a/drivers/gpu/drm/i915/i915_drv.c
b/drivers/gpu/drm/i915/i915_drv.c
index ab64d68..3aeead2 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -740,6 +740,8 @@ static int i915_drm_resume(struct drm_device *dev)
        if (dev_priv->display.hpd_irq_setup)
                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_display_resume(dev);


> does not work, you ask him to fix it, in less polite words. If that
> does not work, you verify that reverting
> e7d6f7d708290da1b7c92f533444b042c79412e0 fixes it for you, then ask
> Daniel Vetter and Jani Nikula to revert it. If they fail to do that,
> you go all the way up to Linus.
> 
> Good luck ;-), 
> 									Pavel
> 


-- 
Toralf, pgp key: C4EACDDE 0076E94E


More information about the Intel-gfx mailing list