Hi, I updated my laptop from Squeeze (kernel 2.6.32) to Wheezy (kernel 3.2) and suspend/resume is broken (I also tried with a 3.8 kernel without success). During resume I got a bug in radeon_pm_resume (kernel logs attached). I investigated a little bit and found that during radeon_pm_resume, the variable rdev->pm.default_power_state_index is equal to -1 causing a bug when trying to access rdev->pm.power_state[rdev->pm.default_power_state_index]. This variable is set in radeon_atombios_parse_power_table_1_3. In my case, num_modes = 3 and frev = 2. I added printk in this code to get the clocks and got:
memoryClock | engineClock ------------+------------ 0 | 10900 0 | 30800 0 | 30800 So no valid power state mode is found and at the end state_index is still equal to 0, rdev->pm.default_power_state_index = state_index - 1; and default_power_state_index will be equal to -1. IMHO, a BUG_ON(!state_index) is missing somewhere! Having said, I am able to use a workaround for this bug: in the bios, I am able (thanks to an alternate bios) to set the memory type clock to SYNC or ASYNC (that let me choose between different memory clock speeds). When set to ASYNC, the radeon_atombios_parse_power_table_1_3 correctly found the 3 modes with a memoryClock of 33300 => suspend/resume is ok. Is there something I can do to help fixing this bug? Best regards, Clement.
dmesg.bug
Description: Binary data
lspci
Description: Binary data
_______________________________________________ xorg-driver-ati mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-driver-ati
