Created attachment 37046 [details]
When I try suspending using KMS my computer (an HP Pavilion dv5035nr laptop)
does not resume. Furthermore I've tried logging into it remotely to obtain a
backtrace from X with no success (following this procedure:
http://ubuntuforums.org/showthread.php?t=1228332). I'm letting NetworkManager
handle my network interfaces, however, I also tried using dhcp directly in the
/etc/network/interfaces file. The laptop screen is completely blank
so I can't switch to another session. The keyboard doesn't respond so it seems like the kernel crashed.
When using UMS the resume process happens perfectly.
I dedicated a large portion of the day to finding a clue to this one.
Following this advice:
I was able to extract a trace from the failed resume process:
Magic number: 0:981:799
hash matches drivers/base/power/main.c:523
pci 0000:01:05.0: hash matches
ec PNP0C09:00: hash matches
The first hash match is none other than my ATI Radeon card as I easily
verified with lspci:
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon XPRESS 200M
However, the above link says that the likely culprit in the failed resume
process is the last hash match. This corresponds to the EC driver:
My card was, till recently, listed under embedded graphics at the AMD/ATI
website. So there appears to be some conflict when using KMS between radeon
and ec that causes the kernel to hang (that explains why I can't ssh into my
computer to get a trace).
I would appreciate some advice and guidance in further debugging this issue, since I'm flying half-blind. I have compiled my kernel with support for ACPI_DEBUG and I included a quirk David Airlie used to get suspend to work with a HP nx6125 laptop but applied for my model (http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=580b4fffbbdc3c899ee1f8189ba321bd60b48840)
Created attachment 37047 [details]
Created attachment 37048 [details]
in Linus tree is a quirk for my rs48x laptop, you try expanding it to cover your laptop, or just force it on for testing.
drm/radeon: add quirk to make HP nx6125 laptop resume
Fantastic!, it works!
I forced it by just writing (like your quirk):
/* quirk for rs4xx HP laptops to make them resume
* - they hang on resume inside the dynclk 1 table.
Just before the /* DYN CLK 1 */ line in the radeon_combios.c file.
So, can you modify your patch to encompass my chipset? actually I know of several xpress 200 different chipsets that have this issue, see for example:
I will contact this bug reporters and will try to get them to modify their kernel source.
Thanks a lot!
Created attachment 37291 [details] [review]
I've sent the attached patch to Dave to be included upstream.