Created attachment 109723 [details] boot dmesg Error description : attemp to drive monitor at 48hz leads to blank screen. Expected behhavior: working setup, since DP MST should able to drive this. Hardware: dell e7440 with e-port+ port replicator, IBM T221 monitor. E-port+ replicator Synaptics VMM2320 MST HUB running updated firmware A01. Monitor connected via two DualDVI ports, each running 1920x2400 resolution. EDID is overriden with drm_kms_helper.edid_firmware. kernel version: 3cb89f9 drm-intel-nightly: 2014y-11m-18d-15h-23m-21s UTC integration manifest EDID override is not strictly neccecary, because modes are added via xrandr: xrandr --newmode "1920x2400_32.00" 202.75 1920 2056 2256 2592 2400 2403 2413 2447 -hsync +vsync xrandr --addmode DP2 1920x2400_32.00 xrandr --addmode DP3 1920x2400_32.00 xrandr --output eDP1 --mode 1920x1080 xrandr --output DP2 --right-of eDP1 --mode 1920x2400_32.00 xrandr --output DP3 --right-of DP2 --mode 1920x2400_32.00 This monitor succesfully works on desktop system with nvidia card with refresh up to 55Hz, however setting refresh higher than 32Hz when runnig on dell results in a blank screen. 32hz mode is added and selected via xrandr. I have noticed that setting 48hz mode leads to follwing error in dmesg: [drm:drm_dp_check_act_status] failed to get ACT bit 1 after 30 retries So, made following changes and retried diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 5682d7e..9afd0a9 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -2405,13 +2405,14 @@ int drm_dp_check_act_status(struct drm_dp_mst_topology_mgr *mgr) count++; udelay(100); - } while (count < 30); + } while (count < 300); if (!(status & DP_PAYLOAD_ACT_HANDLED)) { DRM_DEBUG_KMS("failed to get ACT bit %d after %d retries\n", status, count); ret = -EINVAL; goto fail; - } + } else + DRM_DEBUG_KMS("get ACT bit %d after %d retries\n", status, count); return 0; fail: return ret; Still blank screen at 48hz, the dmesg difference is: -[drm:drm_dp_check_act_status] get ACT bit 3 after 18 retries +[drm:drm_dp_check_act_status] get ACT bit 3 after 27 retries Attaching dmesg from nvidia, from 32Hz running ok, from 48Hz with blank screen, xrandr --verbose
Created attachment 109724 [details] 32hz dmesg
Created attachment 109725 [details] 48hz dmesg
Created attachment 109726 [details] xrandr --verbose
Created attachment 109727 [details] 32hz dmesg + patch
Created attachment 109728 [details] 48hz dmesg + patch
Please grab the output of xrandr --verbose without a forced edid, without any special modes manually added or any kernel patches.
Created attachment 109729 [details] xrandr --verbose xrand --vervose on plain kernel without EDID either software or hardware overriden. screen is blank. Please note, this is non working on nvidia either.
trying to set 48hz mode with latest xf86-video-intel leads to following message in dmesg [ 1012.424441] [drm:drm_dp_mst_handle_down_rep] Got NAK reply: req 0x22, reason 0x09, nak data 0x03 [ 1012.425116] [drm:intel_dp_check_mst_status] got esi2 02 00 00 [ 1012.425118] [drm:intel_dp_check_mst_status] got esi 02 00 00 [ 1012.427638] [drm:intel_dp_hpd_pulse] got hpd irq on port C - short [ 1012.428117] [drm:intel_dp_check_mst_status] got esi 02 10 00 [ 1012.428704] [drm:drm_dp_mst_handle_down_rep] Got NAK reply: req 0x22, reason 0x09, nak data 0x03 [ 1012.429385] [drm:intel_dp_check_mst_status] got esi2 02 00 00 [ 1012.429388] [drm:intel_dp_check_mst_status] got esi 02 00 00 [ 1012.431917] [drm:intel_dp_hpd_pulse] got hpd irq on port C - short [ 1012.432396] [drm:intel_dp_check_mst_status] got esi 02 10 00 [ 1012.432979] [drm:drm_dp_mst_handle_down_rep] Got NAK reply: req 0x22, reason 0x09, nak data 0x03 [ 1012.433651] [drm:intel_dp_check_mst_status] got esi2 02 00 00 [ 1012.433654] [drm:intel_dp_check_mst_status] got esi 02 00 00 [ 1012.548185] [drm:intel_dp_hpd_pulse] got hpd irq on port C - short [ 1012.548671] [drm:intel_dp_check_mst_status] got esi 02 10 00 [ 1012.549253] [drm:drm_dp_mst_handle_down_rep] Got NAK reply: req 0x22, reason 0x09, nak data 0x03 [ 1012.549924] [drm:intel_dp_check_mst_status] got esi2 02 00 00 [ 1012.549926] [drm:intel_dp_check_mst_status] got esi 02 00 00 [ 1012.552450] [drm:intel_dp_hpd_pulse] got hpd irq on port C - short [ 1012.552920] [drm:intel_dp_check_mst_status] got esi 02 10 00 [ 1012.553493] [drm:drm_dp_mst_handle_down_rep] Got NAK reply: req 0x22, reason 0x09, nak data 0x03
Created attachment 109730 [details] xrandr --verbose plain kernel from drm-intel-nightly, no edid override, latest xf86-video-intel from git display is on and running at 2304x1024@60hz
No idea what's wrong here, but looks like DP MST. Adding Dave. I guess the working config is with the blob nvidia driver and so we can't really see what it's doing?
wokring config is with the nouveau driver. But that setup is without MST: it's simpe nvidia card with two DualDVI outputs.
Timeout, closing. Please reopen if the problem persists with latest kernels.
verified with 4.4 kernel: problem still exists.
On a BDW i7 based system there doesn't appear to be a problem with 1920x2400 48Hz SST or MST. I am able to display in both SST and through an MST hub to my Planar 4K ix2850 monitor. I don't have an IBM T221 DG5 to test this on, but the limitation does not appear to be the i915 driver. This could be a limitation of the Dell port replicator using a 245 MHz pixel clock. Here is the xrandr output through an MST hub at 1920x2400 48 Hz. Screen 0: minimum 8 x 8, current 1920 x 2400, maximum 32767 x 32767 DP1 disconnected (normal left inverted right x axis y axis) 1920x2400_32.00 31.97 1920x2400_48.00 47.98 DP1-1 connected primary 1920x2400+0+0 (normal left inverted right x axis y axis) 621mm x 341mm 3840x2160 60.00 + 30.00 29.97 1920x2400 47.98* 1920x2160 60.00 2560x1440 59.95 1920x1440 60.00 2048x1152 60.00 1920x1200 59.88 1920x1080 60.00 50.00 59.94 24.00 23.98 1600x1200 60.00 1680x1050 59.95 1600x900 60.00 1280x1024 75.02 60.02 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.08 70.07 60.00 832x624 74.55 800x600 72.19 75.00 60.32 56.25 720x576 50.00 720x480 60.00 59.94 640x480 75.00 72.81 66.67 60.00 59.94 720x400 70.08 1920x2400_48.00 47.98 newmode commands used to add 32 and 48 Hz 1920x2400 modes: xrandr --newmode "1920x2400_48.00" 245.000 1920 1968 2000 2080 2400 2402 2412 2455 -hsync +vsync xrandr --newmode "1920x2400_32.00" 202.75 1920 2056 2256 2592 2400 2403 2413 2447 -hsync +vsync
We seem to have neglected the bug a bit, apologies. Yuriv, please re-test with latest kernel (taken from drm-tip) and mark as REOPENED (again) if you can reproduce (and attach kernel log and other logs like you have done earlier) and RESOLVED/* if you cannot reproduce. There is quite a few bugs open related to refresh rates, and with new info you will help us to get common nominators on these more visible.
i7-4600u (installed in e7440) has following limitation 3200 x 2000 @ 60 Hz, 3840 x 2160 @ 30 Hz according to https://software.intel.com/en-us/articles/quick-reference-guide-to-intel-processor-graphics so 4k@48hz is unsupported by hardware. sorry for trouble.
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.