Bug 99766 - [v4.9 PATCH] DisplayPort Monitor Doesn't Come Back From Sleep
Summary: [v4.9 PATCH] DisplayPort Monitor Doesn't Come Back From Sleep
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: x86-64 (AMD64) Linux (All)
: highest blocker
Assignee: Intel GFX Bugs mailing list
QA Contact: Luis Botello
Keywords: bisected, regression
Depends on:
Reported: 2017-02-10 21:16 UTC by Palmer Dabbelt
Modified: 2017-07-24 23:15 UTC (History)
3 users (show)

See Also:
i915 platform: ALL
i915 features: display/DP

drm/i915: Fix DisplayPort Hotplug (2.18 KB, patch)
2017-02-10 21:16 UTC, Palmer Dabbelt
no flags Details | Splinter Review
drm/i915: Fix DisplayPort Hotplug (2.29 KB, patch)
2017-02-11 17:28 UTC, Palmer Dabbelt
no flags Details | Splinter Review

Description Palmer Dabbelt 2017-02-10 21:16:11 UTC
Created attachment 129490 [details] [review]
drm/i915: Fix DisplayPort Hotplug

I recently updated to Linux 4.9 (via Gentoo's kernel, but I used Linus' git tree when bisecting and fixing the bug, and it appears on v4.9 there as well) and discovered that my DisplayPort monitor doesn't come back from sleep any more.  I bisected the problem back to 

commit 7d23e3c37bb3fc6952dc84007ee60cb533fd2d5c
Author: Shubhangi Shrivastava <shubhangi.shrivastava@intel.com>
Date:   Wed Mar 30 18:05:23 2016 +0530

    drm/i915: Cleaning up intel_dp_hpd_pulse

    Current DP detection has DPCD operations split across
    intel_dp_hpd_pulse and intel_dp_detect which contains
    duplicates as well. Also intel_dp_detect is called
    during modes enumeration as well which will result
    in multiple dpcd operations. So this patch tries
    to solve both these by bringing all DPCD operations
    in one single function and make intel_dp_detect
    use existing values instead of repeating same steps.

This looks a whole lot like <https://bugs.freedesktop.org/show_bug.cgi?id=89453>, and the fix looks really similar too, but the bug is still there on 4.9 so it's not a duplicate.

I've attached a patch that fixes the problem for me when applied on top of 4.9.  It applies cleanly on Linus' master, but I haven't tried running it.
Comment 1 Chris Wilson 2017-02-10 22:17:40 UTC
Can you add a signed-off-by for your patch (See Developer's Certificate of Origin 1.1 in Documentation/process/submitting-patches.rst) and send it to intel-gfx@lists.freedesktop.org? Or just add an s-o-b here and I'll send it on.
Comment 2 Palmer Dabbelt 2017-02-10 22:49:27 UTC
I sent the patch
Comment 3 Palmer Dabbelt 2017-02-11 17:28:17 UTC
Created attachment 129515 [details] [review]
drm/i915: Fix DisplayPort Hotplug

I don't see my message in the intel-gfx mailing list archive so I'm worried it got lost somehow.  I've attached the patch I sent out here, just in case.
Comment 5 Andreas Galauner 2017-04-05 23:40:31 UTC
I'm experiencing the same issue on a PA328Q connected via DisplayPort.
It must be doing something weird with the HPD line.

When the monitor comes out of standby it is not detected by my stock GNOME 3 environemnt. I have to manually turn if off and on again to use it properly.

Seems like all newer ASUS monitor seem to be affected by this behaviour.

I'm on drm-intel-nightly which is currently based on 4.11-rc5.
Comment 6 Jani Saarinen 2017-04-13 06:48:44 UTC
Ville has patch: https://patchwork.freedesktop.org/series/19601/
Comment 7 Ville Syrjala 2017-04-13 12:27:45 UTC
commit 1a36147bb93921651f7fbd7a6e522da6c349081b
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Wed Apr 12 22:30:17 2017 +0300

    drm/i915: Perform link quality check unconditionally during long pulse

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.