Bug 81903 - [BDW Bisected MST] no fbcon on DP Hot plug, loss of signal
Summary: [BDW Bisected MST] no fbcon on DP Hot plug, loss of signal
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other Linux (All)
: highest critical
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
Keywords: bisected
Depends on:
Reported: 2014-07-30 06:28 UTC by liulei
Modified: 2016-10-19 12:45 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

dmesg (125.67 KB, text/plain)
2014-07-30 06:28 UTC, liulei
no flags Details

Description liulei 2014-07-30 06:28:01 UTC
Created attachment 103672 [details]

==System Environment==
Regression: Yes

Good commit on drm-next: 008f40451d0e59f220a4fa13aaf75d04303a01a1

Non-working platforms: BDW 

origin/drm-intel-nightly: 8734408c113bb38234ed03ec51c723b3deff579b(fails)
    drm-intel-nightly: 2014y-07m-18d-15h-21m-24s integration manifest
origin/drm-intel-next-queued: 34548e510657af829032f23128c0c01ebe48ef21(works)
    drm/i915: Do not unmap object unless no other VMAs reference it  
origin/drm-intel-fixes: c6930992948adf0f8fc1f6ff1da51c5002a2cf95(works)
    Revert "drm/i915: reverse dp link param selection, prefer fast over wide again"

origin/drm-fixes: 3c169e5629d6bce9aede3907aeb38f1c23f61952(works)
    Merge branch 'drm-fixes-3.16' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
    drm/radeon: use helpers

==Bug detailed description==
DP Hot plug cause DP monitor can't be lighted up.

==Reproduce steps==
1.  unplug DP 
2.  plugin DP
3.  check DP monitor
Comment 1 liulei 2014-07-30 07:02:03 UTC
==Bisect results==
Bisect shows: 0e32b39ceed665bfa4a77a4bc307b6652b991632 is the first bad commit
commit 0e32b39ceed665bfa4a77a4bc307b6652b991632
Author:     Dave Airlie <airlied@redhat.com>
AuthorDate: Fri May 2 14:02:48 2014 +1000
Commit:     Dave Airlie <airlied@redhat.com>
CommitDate: Tue Jul 22 11:20:26 2014 +1000

    drm/i915: add DP 1.2 MST support (v0.7)

    This adds DP 1.2 MST support on Haswell systems.

    a) this reworks irq handling for DP MST ports, so that we can
    avoid the mode config locking in the current hpd handlers, as
    we need to process up/down msgs at a better time.

    Changes since v0.1:
    use PORT_PCH_HOTPLUG to detect short vs long pulses
    add a workqueue to deal with digital events as they can get blocked on the
    main workqueue beyong mode_config mutex
    fix a bunch of modeset checker warnings
    acks irqs in the driver
    cleanup the MST encoders

    Changes since v0.2:
    check irq status again in work handler
    move around bring up and tear down to fix DPMS on/off
    use path properties.

    Changes since v0.3:
    updates for mst apis
    more state checker fixes
    irq handling improvements
    fbcon handling support
    improved reference counting of link - fixes redocking.

    Changes since v0.4:
    handle gpu reset hpd reinit without oopsing
    check link status on HPD irqs
    fix suspend/resume

    Changes since v0.5:
    use proper functions to get max link/lane counts
    fix another checker backtrace - due to connectors disappearing.
    set output type in more places fro, unknown->displayport
    don't talk to devices if no HPD asserted
    check mst on short irqs only
    check link status properly
    rebase onto prepping irq changes.
    drop unsued force_act

    Changes since v0.6:
    cleanup unused struct entry.

    [airlied: fix some sparse warnings].
Comment 2 liulei 2014-07-30 07:09:02 UTC
bug 81890, bug 81895, bug 81903, and bug 81856 are caused by the same patch.
Comment 3 Chris Wilson 2014-07-30 07:13:43 UTC
What is the test used here? X (xrandr) or testdisplay?
Comment 4 liulei 2014-07-30 07:29:35 UTC
(In reply to comment #3)
> What is the test used here? X (xrandr) or testdisplay?
I just saw the DP monitor was in black after I unpluged and plugged DP monitor. 
"testdisplay -i" command still can detect DP monitor.
Comment 5 Chris Wilson 2014-08-15 07:38:17 UTC
So you are not observing the console on the DP after hotplug?
Comment 6 liulei 2014-08-18 02:46:20 UTC
(In reply to comment #5)
> So you are not observing the console on the DP after hotplug?
No, I can't see console.
Comment 7 liulei 2014-08-18 03:03:04 UTC
I notice DP monitor entered "power save mode"
Comment 8 Chris Wilson 2014-08-18 05:27:00 UTC
I guess it is related to:

[  225.976720] [drm:intel_mst_pre_enable_dp] 0
[  225.976821] [drm:intel_dp_check_mst_status] got esi2 02 00 00
[  225.976824] [drm:intel_dp_check_mst_status] got esi 02 00 00
[  225.977932] [drm:intel_dp_set_signal_levels] Using signal levels 00000000
[  225.979416] [drm:intel_dp_set_signal_levels] Using signal levels 01000000
[  225.980925] [drm:intel_dp_start_link_train] clock recovery OK
[  225.983522] [drm:intel_dp_complete_link_train] Channel EQ done. DP Training successful
[  225.983686] [drm:drm_dp_mst_allocate_vcpi] initing vcpi for 619 16
[  225.990866] [drm:drm_dp_dpcd_access] too many retries, giving up
[  225.990869] [drm:drm_dp_dpcd_write_payload] failed to read payload table status -5
[  225.990923] [drm:intel_mst_enable_dp] 1
[  225.999364] [drm:drm_dp_dpcd_access] too many retries, giving up
[  225.999366] [drm:drm_dp_check_act_status] failed to read payload table status -5
[  225.999368] [drm:drm_dp_update_payload_part2] payload 0 0
[  226.010408] [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00200000, dig 0x10101011
[  226.010411] [drm:intel_hpd_irq_handler] digital hpd port 1 0
[  226.010420] [drm:intel_dp_hpd_pulse] got hpd irq on port 1 - short
[  226.010692] [drm:intel_dp_check_mst_status] channel EQ not ok, retraining
[  226.011636] [drm:intel_dp_set_signal_levels] Using signal levels 00000000
[  226.013135] [drm:intel_dp_set_signal_levels] Using signal levels 01000000
[  226.014614] [drm:intel_dp_start_link_train] clock recovery OK
[  226.017506] [drm:intel_dp_complete_link_train] Channel EQ done. DP Training successful
[  226.017669] [drm:intel_dp_check_mst_status] got esi 02 00 00

which includes both MST failure and link success. Now to figure what the errors mean.
Comment 9 liulei 2014-08-22 02:04:38 UTC
Latest -nightly kernel (49ceddc7b3b0e3f7eb21b9fb4c9b840cff630047),DP hot plug works well. So, I close this bug.
Comment 10 Jani Nikula 2014-08-22 13:23:20 UTC
Presumed fixed by Imre's hotplug changes queued for 3.17 [1]. Please confirm the problem exists on v3.17-rc1 but is fixed in current drm-intel-fixes.

[1] http://mid.gmane.org/87iolmmh20.fsf@intel.com
Comment 11 liulei 2014-08-25 01:26:44 UTC
Problem is fixed on both v3.17-rc1 and in current drm-intel-fixes.
Comment 12 Jari Tahvanainen 2016-10-19 12:45:26 UTC
Closing verified+fixed.

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.