On Thu, Jun 1, 2017 at 4:27 AM, Florian Echtler floe@butterbrot.org wrote:
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.
I need your dmesg from boot to confirm the display topology, but eDP with r7xx asics was pretty rare. I suspect your system just uses LVDS; as such there is no link training involved.
Alex
*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
SENT FROM MY DEC VT50 TERMINAL