W dniu 7 czerwca 2009 22:48 użytkownik Christian König
For full explaination, please read http://bugs.freedesktop.org/show_bug.cgi?id=18016
Short explaination:
libv: ah, rv620/635. libv: this is where the beautifully separated hw blocks got mucked together on the pll side.
rv620/635 is tricky about PLL engines. These aren't 100% separated and it seems we can't really disable any on them at any time. It seems for example we have to keep PLL1 running if we use PLL2 for driving some output. Wow, this is a really long bugreport. Ok i got it, the problem seems to be a little bit more complicated than i thought, but i think the real solution would be to move the whole handling of RV620_EXT[12]_DIFF_POST_DIV_CNTL from rhd_dig.c to rhd_pll.c.
Do you mean solution which could fix bug #18016 without using method I proposed? I don't see such way, can you tell something more on this? What operations would you like to move from rhd_dig.c to rhd_pll.c? Could you point me to something that would explain me what RV620_EXT[12]_DIFF_POST_DIV_CNTL is used for? I don't understand purpose of this register.
And bye the way i think i found a bug in rhd_dig.c:EncoderRestore and rhd_dig.c:EncoderSave, RV620_EXT[12]_DIFF_POST_DIV_CNTL is added to the DIG offset, while every other read/write goes to the addresses directly.
Which reads/writes do you mean? AFAICS we use "off" in both: EncoderSave and EncoderResore. -- Rafał Miłecki -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org