Summary: | [BDW Bisected MST] no fbcon on DP Hot plug, loss of signal | ||||||
---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | liulei <lei.a.liu> | ||||
Component: | DRM/Intel | Assignee: | Chris Wilson <chris> | ||||
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||
Severity: | critical | ||||||
Priority: | highest | CC: | intel-gfx-bugs | ||||
Version: | unspecified | Keywords: | bisected | ||||
Hardware: | Other | ||||||
OS: | Linux (All) | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
==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]. 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 [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 Problem is fixed on both v3.17-rc1 and in current drm-intel-fixes. 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.
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