Bug 42887

Summary: Garbled display on external screen when using 1920x1080 instead of 1920x1200
Product: Drivers Reporter: thejoe
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: CLOSED CODE_FIX    
Severity: normal CC: alan, florian
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.3 Subsystem:
Regression: No Bisected commit-id:

Description thejoe 2012-03-07 22:53:47 UTC
also reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=44755
and here:
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/915408



[Problem]
i have an external monitor (1920x1200 resolution) that, when set to 1920x1080
resolution (native resolution of laptop display), garbles the screen as seen in
the screenshot below.  The problem doesn't happen using the catalyst driver.

https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/813566/+attachment/2221015/+files/2011-07-20_07-51-28_83.jpg

ProblemType: BugDistroRelease: Ubuntu 11.10
Package: xorg 1:7.6+7ubuntu7
ProcVersionSignature: Ubuntu 3.0.0-15.25-generic 3.0.13
Uname: Linux 3.0.0-15-generic x86_64
.tmp.unity.support.test.0:

ApportVersion: 1.23-0ubuntu4
Architecture: amd64
CompizPlugins:
[core,bailer,detection,composite,opengl,decor,mousepoll,vpswitch,regex,animation,snap,expo,move,compiztoolbox,place,grid,imgpng,gnomecompat,wall,ezoom,workarounds,staticswitcher,resize,fade,unitymtgrabhandles,scale,session,unityshell]
CompositorRunning: None
Date: Thu Jan 12 07:42:25 2012
DistUpgraded: Log time: 2011-07-13 10:07:59.371965
DistroCodename: oneiric
DistroVariant: ubuntu
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
GraphicsCard:
ATI Technologies Inc Broadway PRO [Mobility Radeon HD 5800 Series] [1002:68a1]
(prog-if 00 [VGA controller])
Subsystem: Hewlett-Packard Company Device [103c:1522]InstallationMedia: Ubuntu
10.04 "Lucid Lynx" - Release Candidate amd64 (20100419.1)
MachineType: Hewlett-Packard HP ENVY 15 Notebook PC
ProcEnviron:
PATH=(custom, user)
LANG=en_US.UTF-8ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-15-generic
root=UUID=639dc488-e095-42a4-8c1f-ffb1a9299e1c ro
crashkernel=384M-2G:64M,2G-:128M quiet splash vt.handoff=7SourcePackage: xorg
UpgradeStatus: Upgraded to oneiric on 2011-07-13 (182 days ago)
dmi.bios.date: 04/23/2010
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: F.26
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: 1522
dmi.board.vendor: Hewlett-Packard
dmi.board.version: 36.34
dmi.chassis.type: 10
dmi.chassis.vendor: Hewlett-Packard
dmi.chassis.version: N/A
dmi.modalias:
dmi:bvnHewlett-Packard:bvrF.26:bd04/23/2010:svnHewlett-Packard:pnHPENVY15NotebookPC:pvr048F110000241920001530000:rvnHewlett-Packard:rn1522:rvr36.34:cvnHewlett-Packard:ct10:cvrN/A:
dmi.product.name: HP ENVY 15 Notebook PC
dmi.product.version: 048F110000241920001530000
dmi.sys.vendor: Hewlett-Packard
version.compiz: compiz 1:0.9.6+bzr20110929-0ubuntu6
version.ia32-libs: ia32-libs 20090808ubuntu26
version.libdrm2: libdrm2 2.4.26-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 7.11-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.11-0ubuntu3
version.xserver-xorg: xserver-xorg 1:7.6+7ubuntu7
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.0-1ubuntu13
version.xserver-xorg-video-ati: xserver-xorg-video-ati
1:6.14.99~git20110811.g93fc084-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel
2:2.15.901-1ubuntu2.1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau
1:0.0.16+git20110411+8378443-1
[reply] [-] Comment 1


discussion from freedesktop.org bug:
Alex Deucher 2012-01-13 08:25:54 UTC
The problem is the modeline from your monitor for the 1920x1080 mode is greater
than 165 Mhz which is the current cut off for single link mode in the driver:
(II) RADEON(0): Modeline "1920x1080"x60.0  172.78  1920 2040 2248 2576  1080
1081 1084 1118 -hsync +vsync (67.1 kHz)

It should work if you specify a modeline with a lower clock  E.g.,
Modeline "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync
-vsync
[reply] [-] Comment 5


Alex Deucher 2012-01-13 08:34:21 UTC
Created attachment 55557 [details] [review]
possible fix

This patch against drm-next or Linus git should fix the issue.
[reply] [-] Comment 6 thejoe@gmail.com 2012-01-13 08:53:54 UTC
confirmed that the following sequence displays a non-garbled 1920x1080 display
on the external monitor:

# xrandr --newmode "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088
1111 +hsync -vsync
# xrandr --addmode HDMI-0 1920x1080R
# xrandr 1920x1080R
[reply] [-] Comment 7 Florian Mickler 2012-02-01 13:09:58 UTC
A patch referencing this bug report has been merged in Linux v3.3-rc2:

commit 9aa59993e226af94088adaee993eb8cfd33ae295
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Jan 20 15:03:30 2012 -0500

    drm/radeon/kms: refine TMDS dual link checks
[reply] [-] Comment 8 thejoe@gmail.com 2012-03-07 14:45:11 UTC
I've tested against a kernel with this patch, as well as mainline kernel (both
built by ubuntu kernel team), and am still seeing the same behavior.  So seems
like this change doesn't fix the issue.
Comment 1 Florian Mickler 2012-03-12 22:23:12 UTC
A patch referencing this bug report has been merged in Linux v3.3-rc7:

commit 38aa4a568ba4c3ccba83e862a01e3e60e3b811ee
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Mar 7 19:05:01 2012 -0500

    drm/radeon/kms: fix hdmi duallink checks