Mailinglist Archive: radeonhd (699 mails)

< Previous Next >
Re: [radeonhd] statusreport ASUS pundit2 AM2-690G (RS690)
  • From: darcsis@xxxxxxxxx (Denise H. G.)
  • Date: Thu, 29 Nov 2007 09:55:08 +0800
  • Message-id: <863aupn7cz.fsf@xxxxxxxxxxxxxxxx>
Luc Verhaegen <libv@xxxxxxxxx> writes:

On Thu, Nov 29, 2007 at 08:28:30AM +0800, Denise H. G. wrote:

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():

Please remove this check. Always store the value. Restore will catch the
value properly on its own.

"if (INREG(Crtc, RegOff + D1CRTC_V_SYNC_A))
Store->CrtcVSyncA = INREG(Crtc, RegOff + D1CRTC_V_SYNC_A);"

Please put a

RHDDebug(Crtc->scrnIndex, "%s: D1CRTC_V_SYNC_A = 0x%08X\n", __func__,
Store->Store->CrtcVSyncA);

here, so that the value of this register is read out to the log, so that
we can be absolutely certain.

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

This seems like a rather bad idea in itself, but on the other hand, it
is a _very_ good lead to the cause and a real solution.

Thanks,

OK, I'll have a try. Thanks for your reply.


Luc Verhaegen.
SUSE/Novell X Driver Developer, Night shift.

--
--
To unsubscribe, e-mail: radeonhd+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: radeonhd+help@xxxxxxxxxxxx

< Previous Next >