Bug 188091

Summary: Resume with two monitors, second monitor is not resumed until VT switch
Product: Drivers Reporter: Greg White (gwhite)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: NEW ---    
Severity: normal CC: alexdeucher, vedran
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.9 rc5 Subsystem:
Regression: No Bisected commit-id:
Attachments: Xorg log
dmesg
Patch against atombios_dp.c

Description Greg White 2016-11-18 10:27:33 UTC
This is for AMDGPU.  

I have an RX470 with two monitors attached via DP.  After a long suspend, when one of the monitors has apparently gone into a deeper sleep state, it takes one of them longer to wake.  When this happens,  the second monitor is not detected and will not be seen until I switch to a VT and then back again.  Here's what I see in dmesg before the switch:

18887.893100] [drm:amdgpu_atombios_dp_link_train] *ERROR* displayport link status failed
[18887.893103] [drm:amdgpu_atombios_dp_link_train] *ERROR* clock recovery failed
[18888.070075] [drm:amdgpu_atombios_dp_link_train] *ERROR* displayport link status failed
[18888.070077] [drm:amdgpu_atombios_dp_link_train] *ERROR* clock recovery failed

Again, after I switch to a VT and then back again, all is well.
Comment 1 Alex Deucher 2016-11-21 22:27:34 UTC
Please attach your xorg log and dmesg output.
Comment 2 Greg White 2016-11-21 22:37:24 UTC
Created attachment 245461 [details]
Xorg log
Comment 3 Greg White 2016-11-21 22:37:42 UTC
Created attachment 245471 [details]
dmesg
Comment 4 Greg White 2016-11-21 22:38:23 UTC
Note that those two files were grabbed after I switched to a VT (since the UI was in a pretty whacked state.)
Comment 5 Greg White 2016-11-22 00:41:16 UTC
I should also note this is easily reproducible but still intermittent.  I'd say 80% of the time, I see this.  It's also not always one monitor - it can be either of them.
Comment 6 Vedran Miletić 2016-11-22 00:43:30 UTC
(In reply to Greg White from comment #5)
> I should also note this is easily reproducible but still intermittent.  I'd
> say 80% of the time, I see this.  It's also not always one monitor - it can
> be either of them.

Interesting. I have a very similar issue on Fiji (bug 176311) with two DP monitors, but in case of Fiji it is always one monitor that will be blank until the VT switch happens. And the error message is different.
Comment 7 Greg White 2016-12-04 00:39:51 UTC
I have attached a patch which seems to fix the problem here.  Maybe it will be helpful?
Comment 8 Greg White 2016-12-04 00:41:45 UTC
Created attachment 246801 [details]
Patch against atombios_dp.c

Seems to fix the problem locally.  I have no idea if it's correct or not, but it may help tracking down the actual problem.

On my system, I see one training attempt when the monitors are on, 4-5 when they are in standby.