Mailinglist Archive: radeonhd (699 mails)

< Previous Next >
Re: [radeonhd] statusreport ASUS pundit2 AM2-690G (RS690)
  • From: Luc Verhaegen <libv@xxxxxxxxx>
  • Date: Thu, 29 Nov 2007 02:48:10 +0100
  • Message-id: <20071129014810.GB16463@xxxxxxxxx>
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,

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 >
Follow Ups