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).
Created attachment 118611 [details] Xorg-log
Created attachment 118621 [details] radeontool regmatch after fresh boot with AC
Created attachment 118631 [details] radeontool regmatch after fresh AC boot, then AC removed
Created attachment 118641 [details] radeontool regmatch after fresh boot and AC removed, then AC put back in
Created attachment 118651 [details] radeontool regmatch after suspend/resume with AC
Created attachment 118661 [details] radeontool regmatch after suspend/resume, then AC removed
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?
I suspect the sbios does something to the hw behind the OS/driver's back when you plug/unplug the power.
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?
(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.