Egbert Eich
Denise H. G. writes:
Hi
I've got an RS690 chip with pci id 0x791E. It is onboard vga shipped with Asus M2A-VM motherboard. By using radeonhd driver I also got VSync problems. And I found that for RS690 we should not write ZERO to the register D1CRTC_V_SYNC_A, otherwise the screen will blank off on VT switching. We can safely write non-zero Values to D1CRTC_V_SYNC_A but never ZERO. Anyway, this works for my chip. I don't know if will apply to yours.
Writing 0 to D1CRTC_V_SYNC_A is certainly wrong. It will most likely lead to the behavior you are seeing. You said you are seeing a blank screen on restore - Did you find out when this is written? Did this happen during restore?
In ScreenInit there is a rhdSave(), which saves the initial register values. During this course it saves ZERO for D1CRTC_V_SYNC_A. While restoring, it always restores ZERO for D1CRTC_V_SYNC_A, despite of whatever we write to D1CRTC_V_SYNC_A after the rhdSave(). I just put the following in `rhd_crtc.c' to work around the problem for RS690: in DxSave(): "if (INREG(Crtc, RegOff + D1CRTC_V_SYNC_A)) Store->CrtcVSyncA = INREG(Crtc, RegOff + D1CRTC_V_SYNC_A);" in DxRestore(): "if (Store->CrtcVSyncA) OUTREG(Crtc, RegOff + D1CRTC_V_SYNC_A, Store->CrtcVSyncA);" I don't know if it is good, but this solves the VT switching problem for RS690. hehe
Cheers, Egbert.
-- -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org