On 31.05.2017 14:57, Alex Deucher wrote:
On Wed, May 31, 2017 at 5:21 AM, Lukas Wunner lukas@wunner.de wrote:
On Wed, May 31, 2017 at 10:48:37AM +0200, Florian Echtler wrote:
Hm, try booting with drm.debug=0xf to see if link training for the eDP connector succeeds. If the link cannot be trained, it would explain that the screen stays black. Should this indeed be the case, one possible explanation would be that the panel is muxed to the external port on resume and an appropriate command needs to be sent to the SMC to switch the mux to the radeon card. This could be done in the ->resume_early hook of your APP000C platform driver. The apple-gmux driver contains something similar to power the discrete GPU down if it was off before suspend (because the BIOS always powers it up on resume).
Here's the (substantial) dmesg output, with drm.debug=0xf: http://floe.butterbrot.org/external/radeon/dmesg_after_suspend
I haven't been able to find any references to link training, though.
*shrug* Unfortunately I'm not familiar at all with radeontool. :-(
You can use the radeonreg tool to dump the display registers: https://cgit.freedesktop.org/~agd5f/radeontool/ radeonreg regs dce3 replace dce3 with whatever dce version your card has.
AFAICT the RV730 indeed has dce3, so I created a register dump before and after suspend: http://floe.butterbrot.org/external/radeon/regs_before_suspend.txt http://floe.butterbrot.org/external/radeon/regs_after_suspend.txt
The diff, however, is quite large, I have no idea which registers to look for.
Best, Florian