Created attachment 31540 [details]
After resume from suspend or hibernate the screen is green with some very wrong x resolution or blooming with flicker. I ran radedontool regmatch and compared before and after, and when I manually regset LVDS_GEN_CNTL 0x003c00a5 the screen comes back and everything is fine.
Latest git of DDX. The Ubuntu 2.6.32-5.6-generic kernel is based on 2.6.32-rc8.
I should mention that this is a huge step forward from some months ago, when resuming with KMS would just give a dead screen/laptop with no backlight.
Created attachment 31541 [details]
regmatch '*' after boot
Created attachment 31542 [details]
reg dump after hibernation
Created attachment 31543 [details]
reg dump after suspend
I see the screen goes funny (green or blooming) before power goes off, in the case of hibernation before the long write-to-disk.
Created attachment 31571 [details] [review]
pull in lvds misc mode info
This patch makes sure to pull in the misc mode info for lvds (syn polarity, etc.).
Created attachment 31572 [details] [review]
fix LVDS setup on r4xx chips
R4xx mobility chips use atombios, which does not store the LVDS_GEN_CNTL parameter setup like combios; rather, it's configured on fly in LVDSEncoderControl. As such, LVDS_GEN_CNTL is set wrong on resume. Call LVDSEncoderControl to set it properly.
This patch should fix the issue. Another thing to try would be to try the r4xx_atom module option; this forces the use of atom calls to set modes on r4xx cards.
Thanks! With the two patches it works perfectly.
Using the r4xx_atom module option did not work, the screen got extremely fuzzy (horizontal flicker).
Fixed in 2.6.33.