https://bugzilla.kernel.org/show_bug.cgi?id=67121
Bug ID: 67121 Summary: Broken suspend/resume with radeon/KMS on RS482M Product: Drivers Version: 2.5 Kernel Version: 3.12.5 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) Assignee: drivers_video-dri@kernel-bugs.osdl.org Reporter: adi@drcomp.erfurt.thur.de Regression: No
Hi!
This report is somewhat similar to https://bugzilla.kernel.org/show_bug.cgi?id=43441, but since it's about a different card and slightly different focus, I didn't want to pollute the other bug report with potentially misleading information.
Here's the problem: First suspend/resume cycle works, second may fail at either suspend or resume, the machine simply hangs. Sometimes, just sometimes, the second cycle might fully succeed, in this case, the third attempt is bound to fail.
After the first suspend/resume cycle, removing AC power will cripple the output as seen in these videos:
http://adi.loris.tv/radeon-kms1.mp4
http://adi.loris.tv/radeon-kms2.mp4
Plugging AC back in will fix the issue until I remove the power supply again, resulting in the same distortion. Note that AC plug/removal has to take place when the machine is running, those events don't do a thing during suspend, so something is clearly acting to these ACPI events, though I couldn't spot any code in radeon that handles power events on such an old card.
I'm going to attach five register dumps taken in the following sequence:
1. Fresh boot with AC plugged in (freshboot-powered) 2. Now let's remove the AC while running, no reboot (freshboot-unpowered) 3. Now let's put the AC back in (freshboot-powered2) 4. Suspend/Resume while AC stays active (resumed-powered) 5. Now remove AC again (resumed-unpowered) --> distortion
While I think both aspects are related, I care more about the suspend/resume than the distortion.
Note that UMS shows neither distortion nor any suspend/resume problems.
Finally, let me point out that it's always been like this. I had modeset=0 for years (roughly since March 2011).
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #1 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Created attachment 118611 --> https://bugzilla.kernel.org/attachment.cgi?id=118611&action=edit Xorg-log
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #2 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Created attachment 118621 --> https://bugzilla.kernel.org/attachment.cgi?id=118621&action=edit radeontool regmatch after fresh boot with AC
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #3 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Created attachment 118631 --> https://bugzilla.kernel.org/attachment.cgi?id=118631&action=edit radeontool regmatch after fresh AC boot, then AC removed
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #4 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Created attachment 118641 --> https://bugzilla.kernel.org/attachment.cgi?id=118641&action=edit radeontool regmatch after fresh boot and AC removed, then AC put back in
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #5 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Created attachment 118651 --> https://bugzilla.kernel.org/attachment.cgi?id=118651&action=edit radeontool regmatch after suspend/resume with AC
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #6 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Created attachment 118661 --> https://bugzilla.kernel.org/attachment.cgi?id=118661&action=edit radeontool regmatch after suspend/resume, then AC removed
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #7 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Random observation: high CPU usage "uncripples" the video output.
That is: I suspend to RAM, I resume and unplug the AC, causing the screen to be heavily distorted.
When I blindly start burnK7 (from Debian's cpuburn package), CPU usage on one of the cores jumps to 100% and I have a wonderful clear and perfect screen. As soon as I terminate burnK7, the corruption is back. (with AC unplugged all the time; of course, plugging the AC back in always fixes the corruption).
So it's a power management issue. For some reasons, the radeon driver (or the hardware) is sensitive to CPU power saving states (idle states?) and the presence of an external power supply. And all this only happens with KMS, not with UMS.
So is it an ACPI/PM bug? Or DRI?
https://bugzilla.kernel.org/show_bug.cgi?id=67121
Alex Deucher alexdeucher@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexdeucher@gmail.com
--- Comment #8 from Alex Deucher alexdeucher@gmail.com --- I suspect the sbios does something to the hw behind the OS/driver's back when you plug/unplug the power.
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #9 from Adrian Knoth adi@drcomp.erfurt.thur.de --- Maybe, but then again, why does with work on a freshly booted machine (before first suspend). And last not least, why isn't UMS affected?
https://bugzilla.kernel.org/show_bug.cgi?id=67121
--- Comment #10 from Alex Deucher alexdeucher@gmail.com --- (In reply to Adrian Knoth from comment #9)
Maybe, but then again, why does with work on a freshly booted machine (before first suspend). And last not least, why isn't UMS affected?
UMS runs the bios post to re-init the gpu on resume while kms re-inits the hw itself. Presumably the bios post does something else to the system which prevents the issue.
dri-devel@lists.freedesktop.org