Created attachment 29707 [details]
syslog, kms fails
With a vanilla 2.6.31 kernel, and a rs690.
KMS fails to initalize with "Bad things might happen." messages, ending with ring test failed.
By trying to find the cause, i arrived at r420_pipes_init, and put DRM_INFO that printed the value of RADEON_RBBM_STATUS between each register access.
This resulted that KMS sucessfull started, in this run.
[drm] rs690_gpu_init1 (RBBM_STATUS=0x10000140)
[drm] rs690_gpu_init2 (RBBM_STATUS=0x10000140)
[drm] rs690_gpu_init3 (RBBM_STATUS=0x10000140) (before r420_pipes_init call)
[drm] r420_pipes_init1 (RBBM_STATUS=0x10000140) (top of r420_pipes_init)
[drm] r420_pipes_init2 (RBBM_STATUS=0x94000140) (after WREG32(0x4274, ... )
[drm] r420_pipes_init pipes 1
[drm] r420_pipes_init3 (RBBM_STATUS=0x10000140)
[drm] r420_pipes_init4 (RBBM_STATUS=0x94000140)
[drm] radeon: 1 quad pipes, 1 z pipes initialized.
[drm] rs690_gpu_init4 (RBBM_STATUS=0x10000140)
The value of RBBM_STATUS after GA_ENHANCE register write was 0x94000140
Only by putting a DRM_INFO print showed that fixes the problem, likely the cause is a timing related.
By putting a r100_gui_wait_for_idle right after GA_ENHANCE write, KMS sucessfull starts.
(Ignore invalid EDID, is likely the motherboard fault)
Created attachment 29708 [details]
syslog, kms succefull inits
So only 2.6.31 is affected ? Does it works with recent kernel (2.6.33 or 2.6.34) ?
Just now tried 2.6.35-rc6 without any problem.
The fix were added at 2.6.32, commit 18a4cd2e9147dd41234dade56edb62c6222832eb
and is working fine.