Created attachment 103672 [details]
Good commit on drm-next: 008f40451d0e59f220a4fa13aaf75d04303a01a1
Non-working platforms: BDW
drm-intel-nightly: 2014y-07m-18d-15h-21m-24s integration manifest
drm/i915: Do not unmap object unless no other VMAs reference it
Revert "drm/i915: reverse dp link param selection, prefer fast over wide again"
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.
1. unplug DP
2. plugin DP
3. check DP monitor
Bisect shows: 0e32b39ceed665bfa4a77a4bc307b6652b991632 is the first bad commit
Author: Dave Airlie <email@example.com>
AuthorDate: Fri May 2 14:02:48 2014 +1000
Commit: Dave Airlie <firstname.lastname@example.org>
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
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].
bug 81890, bug 81895, bug 81903, and bug 81856 are caused by the same patch.
What is the test used here? X (xrandr) or testdisplay?
(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.
So you are not observing the console on the DP after hotplug?
(In reply to comment #5)
> So you are not observing the console on the DP after hotplug?
No, I can't see console.
I notice DP monitor entered "power save mode"
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.
Latest -nightly kernel (49ceddc7b3b0e3f7eb21b9fb4c9b840cff630047),DP hot plug works well. So, I close this bug.
Presumed fixed by Imre's hotplug changes queued for 3.17 . Please confirm the problem exists on v3.17-rc1 but is fixed in current drm-intel-fixes.
Problem is fixed on both v3.17-rc1 and in current drm-intel-fixes.