Bug 86462 - [DP MST?] 4k monitor at 48hz leads to blank screen
Summary: [DP MST?] 4k monitor at 48hz leads to blank screen
Status: CLOSED NOTABUG
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-19 11:49 UTC by Yuriy Vostrikov
Modified: 2017-06-27 15:47 UTC (History)
2 users (show)

See Also:
i915 platform: HSW
i915 features: display/DP MST


Attachments
boot dmesg (429.67 KB, text/plain)
2014-11-19 11:49 UTC, Yuriy Vostrikov
no flags Details
32hz dmesg (55.41 KB, text/plain)
2014-11-19 11:49 UTC, Yuriy Vostrikov
no flags Details
48hz dmesg (55.33 KB, text/plain)
2014-11-19 11:50 UTC, Yuriy Vostrikov
no flags Details
xrandr --verbose (15.41 KB, text/plain)
2014-11-19 11:50 UTC, Yuriy Vostrikov
no flags Details
32hz dmesg + patch (55.41 KB, text/plain)
2014-11-19 11:51 UTC, Yuriy Vostrikov
no flags Details
48hz dmesg + patch (55.57 KB, text/plain)
2014-11-19 11:51 UTC, Yuriy Vostrikov
no flags Details
xrandr --verbose (11.53 KB, text/plain)
2014-11-19 13:21 UTC, Yuriy Vostrikov
no flags Details
xrandr --verbose (12.33 KB, text/plain)
2014-11-19 13:44 UTC, Yuriy Vostrikov
no flags Details

Description Yuriy Vostrikov 2014-11-19 11:49:03 UTC
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
Comment 1 Yuriy Vostrikov 2014-11-19 11:49:32 UTC
Created attachment 109724 [details]
32hz dmesg
Comment 2 Yuriy Vostrikov 2014-11-19 11:50:09 UTC
Created attachment 109725 [details]
48hz dmesg
Comment 3 Yuriy Vostrikov 2014-11-19 11:50:43 UTC
Created attachment 109726 [details]
xrandr --verbose
Comment 4 Yuriy Vostrikov 2014-11-19 11:51:23 UTC
Created attachment 109727 [details]
32hz dmesg + patch
Comment 5 Yuriy Vostrikov 2014-11-19 11:51:46 UTC
Created attachment 109728 [details]
48hz dmesg + patch
Comment 6 Daniel Vetter 2014-11-19 13:04:45 UTC
Please grab the output of xrandr --verbose without a forced edid, without any special modes manually added or any kernel patches.
Comment 7 Yuriy Vostrikov 2014-11-19 13:21:07 UTC
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.
Comment 8 Yuriy Vostrikov 2014-11-19 13:39:47 UTC
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
Comment 9 Yuriy Vostrikov 2014-11-19 13:44:12 UTC
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
Comment 10 Daniel Vetter 2014-11-20 14:58:49 UTC
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?
Comment 11 Yuriy Vostrikov 2014-11-20 15:04:36 UTC
wokring config is with the nouveau driver. But that setup is without MST: it's simpe nvidia card with two DualDVI outputs.
Comment 12 Jani Nikula 2015-10-23 10:22:08 UTC
Timeout, closing. Please reopen if the problem persists with latest kernels.
Comment 13 Yuriy Vostrikov 2016-01-25 12:21:49 UTC
verified with 4.4 kernel: problem still exists.
Comment 14 Clinton Taylor 2016-10-21 17:41:57 UTC
   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
Comment 15 Jari Tahvanainen 2017-03-29 11:24:17 UTC
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.
Comment 16 Yuriy Vostrikov 2017-04-07 17:47:17 UTC
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.