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
Status: CLOSED FIXED
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
URL:
Whiteboard:
Keywords: bisected
Depends on:
Blocks:
 
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:


Attachments
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]
dmesg

==System Environment==
--------------------------
Regression: Yes

Good commit on drm-next: 008f40451d0e59f220a4fa13aaf75d04303a01a1

Non-working platforms: BDW 

==kernel==
--------------------------
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
origin/drm-next:b957f457fbce30cc4901dc28f2b56f2b15dfe84a(fails)
    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.

    Notes:
    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.