Bug 52256

Summary: Trinity (ARUBA) DP link training problems
Product: DRI Reporter: LRN <lrn1986>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: gunkilatur, reinkarn
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
syslog (the result of modeprobe -v radeon modeset=1) none

Description LRN 2012-07-19 08:36:02 UTC
Created attachment 64375 [details]
syslog (the result of modeprobe -v radeon modeset=1)

3.4.4 boots into black screen (backlight is off).
Boots fine with radeon.modeset=0 (with appropriate lack of 3D acceleration).
Boots fine with radeon being blacklisted (same as above).
amd64 microcode is installed. Installed ARUBA_* firmware manually (not packaged for Debian yet).
Compiled fresh libdrm, mesa and xf86-video-ati from git (installed into /usr/xorg, added that directory to modulepath in xorg.conf, added /usr/xorg/lib to /etc/ld.so.conf.d/a-local-xorg.conf
ssh'ed into my laptop, issued sudo modprobe -v drm debug=1 && sudo modprobe -v radeon modeset=1
Black screen all over again :(
Comment 1 LRN 2012-07-22 14:07:11 UTC
Tried with HEAD kernel (3.5.0-rc7) - same thing.
Worst thing is, from the logs it is not apparent (to me) what exactly is wrong.
Comment 2 LRN 2012-07-22 16:27:27 UTC
Here's a piece of syslog with drm debugging set to 0x04, and with some extra lines of my own:

Jul 22 19:40:13 APC2 kernel: [   10.010370] [drm:radeon_dp_link_train_cr], clock recovery at voltage 0 pre-emphasis 0
Jul 22 19:40:13 APC2 kernel: [   10.010550] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Using training pattern 2
Jul 22 19:40:13 APC2 kernel: [   10.010551] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.012180] [drm:radeon_dp_get_link_status], link status 01 00 80 00 04 00
Jul 22 19:40:13 APC2 kernel: [   10.012182] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.012184] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.012184] [drm:dp_get_adjust_train], requested signal parameters: lane 0 voltage 0.4V pre_emph 3.5dB
Jul 22 19:40:13 APC2 kernel: [   10.012186] [drm:dp_get_adjust_train], using signal parameters: voltage 0.4V pre_emph 3.5dB
Jul 22 19:40:13 APC2 kernel: [   10.013661] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.015282] [drm:radeon_dp_get_link_status], link status 01 00 80 00 08 00
Jul 22 19:40:13 APC2 kernel: [   10.015283] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.015285] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.015285] [drm:dp_get_adjust_train], requested signal parameters: lane 0 voltage 0.4V pre_emph 6dB
Jul 22 19:40:13 APC2 kernel: [   10.015286] [drm:dp_get_adjust_train], using signal parameters: voltage 0.4V pre_emph 6dB
Jul 22 19:40:13 APC2 kernel: [   10.016631] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.018249] [drm:radeon_dp_get_link_status], link status 01 00 80 00 0c 00
Jul 22 19:40:13 APC2 kernel: [   10.018250] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.018251] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.018252] [drm:dp_get_adjust_train], requested signal parameters: lane 0 voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.018253] [drm:dp_get_adjust_train], using signal parameters: voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.019640] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.021260] [drm:radeon_dp_get_link_status], link status 01 00 80 00 0c 00
Jul 22 19:40:13 APC2 kernel: [   10.021262] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.021263] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.021264] [drm:dp_get_adjust_train], requested signal parameters: lane 0 voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.021265] [drm:dp_get_adjust_train], using signal parameters: voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.022647] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.024267] [drm:radeon_dp_get_link_status], link status 01 00 80 00 0c 00
Jul 22 19:40:13 APC2 kernel: [   10.024269] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.024270] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.024271] [drm:dp_get_adjust_train], requested signal parameters: lane 0 voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.024272] [drm:dp_get_adjust_train], using signal parameters: voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.025655] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.027274] [drm:radeon_dp_get_link_status], link status 01 00 80 00 0c 00
Jul 22 19:40:13 APC2 kernel: [   10.027276] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.027278] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.027280] [drm:dp_get_adjust_train], requested signal parameters: lane 0 voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.027281] [drm:dp_get_adjust_train], using signal parameters: voltage 0.4V pre_emph 9.5dB
Jul 22 19:40:13 APC2 kernel: [   10.028659] [drm:radeon_dp_link_train_ce], radeon_dp_link_train_ce: Interval is 0, delaying for 400
Jul 22 19:40:13 APC2 kernel: [   10.030279] [drm:radeon_dp_get_link_status], link status 01 00 80 00 0c 00
Jul 22 19:40:13 APC2 kernel: [   10.030281] [drm:dp_channel_eq_ok], dp_channel_eq_ok: lane count = 1, lane align = 0x80; is & 0x1?
Jul 22 19:40:13 APC2 kernel: [   10.030282] [drm:dp_channel_eq_ok], dp_channel_eq_ok: Not done, return false
Jul 22 19:40:13 APC2 kernel: [   10.030283] [drm:radeon_dp_link_train_ce] *ERROR* channel eq failed: 5 tries
Jul 22 19:40:13 APC2 kernel: [   10.030284] [drm:radeon_dp_link_train_ce] *ERROR* channel eq failed

#27314 mentions something similar. Well, at least link status looks more real here than there. Anyway, the problem is in lack of DP alignment (whatever that is...).
Comment 3 Alex Deucher 2012-07-23 14:58:05 UTC
*** Bug 52081 has been marked as a duplicate of this bug. ***
Comment 4 Alex Deucher 2012-07-23 14:58:48 UTC
*** Bug 52373 has been marked as a duplicate of this bug. ***
Comment 5 LRN 2012-08-07 15:57:46 UTC
In case somebody is still watching this, i've tried 3.6.0-rc1, which features this commit (and its followups) - http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=949c4a34afacfe800fc442afac117aba15284962
And it doesn't fix the problem.
Comment 6 LRN 2012-08-19 10:19:17 UTC
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=f59abbf28696389c91c2697c7db31f20cfa91d8a doesn't work either.

Are you sure there are no patches that i could try? I've tried to look up the ones on #27314 , but they are against an old kernel version, and some of them were (apparently) applied in some manner.
Comment 7 Christian König 2012-08-19 10:25:18 UTC
I also have DP link problems on the trinity testing board I have.

Always thought that this is just a problem because it is a beta or even alpha board, but that doesn't seems to be the case.

@Alex: So I can test any patches/ideas you've got.
Comment 8 Alex Deucher 2012-08-30 00:13:43 UTC
Should be fixed in my drm-next-3.6 branch:
http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-fixes-3.6
there are several patches required.  The patches should show up in stable kernels as well once Dave pulls them.
Comment 9 LRN 2012-08-30 01:40:44 UTC
Pulled your drm-next-3.6 branch, and merged with current linux master.
Display now works!

There are font rendering problems with X server, but that's another issue.
Comment 10 LRN 2012-09-02 18:02:28 UTC
Recompiled and installed latest libdrm + mesa + radeon driver, that fixed font corruption in Gnome 3.

I thereby pronounce this bug resolved and fixed.
Comment 11 eandry@free.fr 2012-09-10 09:43:34 UTC
Hi !

Will the fix be backported to previous kernel releases ?
Because next ubuntu will be using 3.5.x ... (and the current precise doesn't handle the graphic card and use vesa driver, which is not perfect usable but usable)
And this bug is a real blocker for ARUBA users.

But at least thank for the fix, I can use my gentoo on my brand new Samsung Laptop !
Comment 12 Alex Deucher 2012-09-10 13:08:32 UTC
(In reply to comment #11)
> Hi !
> 
> Will the fix be backported to previous kernel releases ?

Yes, the patches will show up in the stable kernel series.

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.