Bug 72167

Summary: radeonsi/KMS: Displayport mode detected incorrectly
Product: xorg Reporter: Ralf-Peter Rohbeck <RalfPeter.Rohbeck>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log
none
grep drm: /var/log/kern.log
none
xrandr -q none

Description Ralf-Peter Rohbeck 2013-11-30 08:08:06 UTC
Created attachment 90013 [details]
Xorg.0.log

The mode on my (cheap Korean) 1440p monitors on DP outputs (via DP->DVI converters) is detected incorrectly.
xrandr -q displays
DisplayPort-0 connected 1024x768+2560+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9  
DisplayPort-1 connected 1024x768+3584+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9
but since they are single frequency monitors they remain blank.

I can set the correct mode with
xrandr --addmode DisplayPort-0 2560x1440
xrandr --addmode DisplayPort-1 2560x1440
xrandr --output DisplayPort-0 --mode 2560x1440 --output DisplayPort-1 --mode 2560x1440
(details like --rotate and --pos left out) and everything seems to work correctly.

This has happened for a while, at least since I started playing around with radeonsi in March, but it was all hand-built. Now I tried Kubuntu trusty (yay, radeonsi and glamoregl out of the box) and the issue is still around.

I run 4 monitors on a 7850:
1920x1080 on HDMI (Acer S273HL)
2560x1440 on DVI-0 (Achieva Shimian)
2560x1440 on DP-0 (QNIX QX2700)
2560x1440 on DP-1 (QNIX QX2700)

The HDMI and DVI-0 outputs are handled correctly.

The two monitors on the DisplayPorts are connected via Accell B087B-007B. I had trouble with the BIOS setting the wrong mode on those two monitors, but since I updated the firmware on the adapters (http://www.accellcables.com/displayport-fw-update.html#q4) those problems are gone. Now everything is correct HW-wise I think.

$ uname -a
Linux ws 3.12.0-4-generic #12-Ubuntu SMP Tue Nov 26 22:38:40 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu Trusty Tahr (development branch)"
# dpkg-query -l xserver-xorg-video-radeon \*glamor\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                 Version                 Architecture            Description
+++-====================================-=======================-=======================-=============================================================================
ii  libglamor0:amd64                     0.5.1-0ubuntu7          amd64                   shared graphics acceleration library based on OpenGL
ii  xserver-xorg-glamoregl:amd64         0.5.1-0ubuntu7          amd64                   X.Org X server -- graphics acceleration module based on OpenGL
ii  xserver-xorg-video-radeon            1:7.2.0-0ubuntu10       amd64                   X.Org X server -- AMD/ATI Radeon display driver
# cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-3.12.0-4-generic root=UUID=f034f2ef-eaad-40af-8530-83f3b4691b6d ro rootflags=subvol=@ drm.debug=4 log_buf_len=10M radeon.dpm=1 sysrq_always_enabled

The attached log files are from the running system, without setting the monitor modes manually.
Comment 1 Ralf-Peter Rohbeck 2013-11-30 08:09:34 UTC
Created attachment 90014 [details]
grep drm: /var/log/kern.log
Comment 2 Ralf-Peter Rohbeck 2013-11-30 08:14:04 UTC
Created attachment 90015 [details]
xrandr -q
Comment 3 Ralf-Peter Rohbeck 2013-11-30 08:16:43 UTC
Edit: Since January: https://bugs.freedesktop.org/show_bug.cgi?id=59703#c12
Comment 4 Alex Deucher 2013-12-02 18:17:43 UTC
(In reply to comment #0)
> Created attachment 90013 [details]
> Xorg.0.log
> 
> The mode on my (cheap Korean) 1440p monitors on DP outputs (via DP->DVI
> converters) is detected incorrectly.

Do they work properly if you connect via DP directly?  From the log it looks like the driver is still driving them as DP rather than DVI.
Comment 5 Alex Deucher 2013-12-02 18:48:59 UTC
This bug has nothing to do with bug 59703.
Comment 6 Ralf-Peter Rohbeck 2013-12-03 05:25:39 UTC
(In reply to comment #4)
> Do they work properly if you connect via DP directly?  From the log it looks
> like the driver is still driving them as DP rather than DVI.

They are DVI only so I can't connect them to the DP outputs directly, but they work correctly when I plug them into the DVI output.
Comment 7 Ralf-Peter Rohbeck 2013-12-03 05:26:24 UTC
(In reply to comment #5)
> This bug has nothing to do with bug 59703.

Yes, this was only for some older logs.
Comment 8 Alex Deucher 2013-12-03 14:00:06 UTC
(In reply to comment #6)
> (In reply to comment #4)
> > Do they work properly if you connect via DP directly?  From the log it looks
> > like the driver is still driving them as DP rather than DVI.
> 
> They are DVI only so I can't connect them to the DP outputs directly, but
> they work correctly when I plug them into the DVI output.

What's strange is that the monitor seems to present itself as DP, even over DVI.  The driver is able to get DPCD from the monitor and is able to communitcate with it over aux.  The only thing that doesn't seem to be wired up is the EDID.You might check and see if they have any configuration options in the menus.  For DP ports, the driver attempts to talk DP to the monitor and if that fails, it tries DVI/HDMI.  Unfortunately, your monitor responds via DP so the driver never tries DVI.  It seems like a hw issue with the monitors.
Comment 9 Alex Deucher 2013-12-03 14:04:23 UTC
Actually, I guess you are using active DP adapters.  So the driver is treating them as DP as it should.  However, they don't seem to be passing through the EDID properly.  Can you try another adapter?
Comment 10 Ralf-Peter Rohbeck 2013-12-03 17:57:41 UTC
(In reply to comment #9)
> Actually, I guess you are using active DP adapters.  So the driver is
> treating them as DP as it should.  However, they don't seem to be passing
> through the EDID properly.  Can you try another adapter?

I don't have any other adapters.
What I don't get is: The BIOS displays correctly on the DP outputs, which implies that the card knows the correct EDID data, right?
Comment 11 Alex Deucher 2013-12-11 16:31:07 UTC
(In reply to comment #10)
> I don't have any other adapters.
> What I don't get is: The BIOS displays correctly on the DP outputs, which
> implies that the card knows the correct EDID data, right?

If the bios is able to bring up the monitors it should work.  The monitor is deferring the transaction.  You might try increasing the number of retries.  E.g., something like:

diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
index fb3ae07..5bc5edc 100644
--- a/drivers/gpu/drm/radeon/atombios_dp.c
+++ b/drivers/gpu/drm/radeon/atombios_dp.c
@@ -272,7 +272,7 @@ int radeon_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
                break;
        }
 
-       for (retry = 0; retry < 4; retry++) {
+       for (retry = 0; retry < 16; retry++) {
                ret = radeon_process_aux_ch(auxch,
                                            msg, msg_bytes, reply, reply_bytes, 0, &ack);
                if (ret == -EBUSY)
Comment 12 Ralf-Peter Rohbeck 2013-12-15 07:12:49 UTC
(In reply to comment #11)
Some improvement... the monitors sync now but I still have to tell X to use 2560x1440: Without the Modeline in xorg.conf the default resolution displayed by xrandr -q is still 1024x768.
Comment 13 Martin Peres 2019-11-19 07:43:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/84.

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.