2009/6/26 Dariem Pérez Herrera
Hi, Some time ago, I wrote about issues with GPU RS600. Now, with new updates (linux-2.6.30, latest mesa, xorg and radeonhd from git repos) the same problems persist. "MC not idle" is the tipical error message in log. My card (Radeon Xpress 1250) works fine with "radeon" driver (although with no acceleration and no SVIDEO output detection). I've been trying to hack a little into the source code of radeonhd and I found incorrect values for certain registers addresses for RS600. I'm attaching a patch. Before this changes, my notebook totally froze when starting X, leaving me with the only option to shut it down through power button. Now I just get a black screen, but the keyboard keeps responsive, so now I can restart it properly. That happened before, because the function to detect idle MC couldn't detect it, because of the incorrectly set registers, and now it works fine, telling me the error at the proper time, but still.... I also attached my Xorg.0.log with -logverbose 7. I can see there are many functions been called which names suggest they are made for RS690, not RS600, so it is possible that MC cannot go idle because of this (incorrectly use of RS690 register addresses instead RS600 addresses). I'm not familiar with radeonhd source code, so trying to fix MC make me lost into the code ocean. Any mentorship or documentation available so I can try?
The radeon driver should have the correct bits for indirect MC access on RS690/740 and RS600. Note that RS690/740 and RS600 are different WRT MC setup. See: RADEONINMC() RADEONOUTMC() radeon_get_mc_idle() in radeon_driver.c for the relevant regs and bits. Alex -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org