Messages in this thread Patch in this message | | | Subject | 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 | Fri, 30 Oct 2015 10:38:18 +0100 |
| |
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@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@redhat.com> >>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> >>> Cc: stable@vger.kernel.org >>> Signed-off-by: Jani Nikula <jani.nikula@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@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
| |