It now comes back at resume time.
But suffers long delays (also sometimes with 2.6.35) doing this:
[drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting
[drm:atom_execute_table_locked] *ERROR* atombios stuck executing E576 (len 105,
WS 12, PS 8) @ 0xE5C4
[drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting
[drm:atom_execute_table_locked] *ERROR* atombios stuck executing ECD2 (len 86,
WS 4, PS 0) @ 0xED05
[drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting
[drm:atom_execute_table_locked] *ERROR* atombios stuck executing E576 (len 105,
WS 12, PS 8) @ 0xE5C4
PM: resume of devices complete after 15718.253 msecs
So I did this (local hack only, obviously NOT for mainline) to work around that
issue:
--- linux-2.6.36/drivers/gpu/drm/radeon/atom.c 2010-10-20 16:30:22.000000000 -0400
+++ linux/drivers/gpu/drm/radeon/atom.c 2010-11-19 17:14:21.141807003 -0500
@@ -1150,6 +1151,7 @@
if (!base)
return -EINVAL;
+ if (base == 0xe576 || base == 0xecd2) return 0; /* prevent freezes on
Dell i9400 w/X1400 */
len = CU16(base + ATOM_CT_SIZE_PTR);
ws = CU8(base + ATOM_CT_WS_PTR);
--