diff options
author | Eric Anholt <anholt@FreeBSD.org> | 2006-03-02 17:53:38 -0800 |
---|---|---|
committer | Eric Anholt <anholt@leguin.anholt.net> | 2006-04-06 15:57:51 -0700 |
commit | 33c62e8e654fa2228bc3fd31ec0fe010703f363a (patch) | |
tree | e1603bd4919abf01c003343f6c3fe5e82475a9cf /src | |
parent | 7f4dc09dcafc7f0423b7f3e970a0b19fbbf515dd (diff) |
Change the order of reg writes for restore, possibly increasing chances of
success. Also save and restore ADPA.
Diffstat (limited to 'src')
-rw-r--r-- | src/i830.h | 1 | ||||
-rw-r--r-- | src/i830_driver.c | 13 |
2 files changed, 10 insertions, 4 deletions
@@ -403,6 +403,7 @@ typedef struct _I830Rec { CARD32 saveDSPBSTRIDE; CARD32 saveDSPBPOS; CARD32 saveDSPBBASE; + CARD32 saveADPA; } I830Rec; diff --git a/src/i830_driver.c b/src/i830_driver.c index f4184397..f3bc682d 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -3578,6 +3578,8 @@ SaveHWState(ScrnInfoPtr pScrn) pI830->saveDSPBPOS = INREG(DSPBPOS); pI830->saveDSPBBASE = INREG(DSPBBASE); + pI830->saveADPA = INREG(ADPA); + if (I830IsPrimary(pScrn) && pI830->pipe != pI830->origPipe) SetBIOSPipe(pScrn, pI830->origPipe); else @@ -3733,6 +3735,7 @@ RestoreHWState(ScrnInfoPtr pScrn) OUTREG(DSPASTRIDE, pI830->saveDSPASTRIDE); OUTREG(DSPAPOS, pI830->saveDSPAPOS); OUTREG(DSPABASE, pI830->saveDSPABASE); + OUTREG(PIPEASRC, pI830->savePIPEASRC); OUTREG(FPB0, pI830->saveFPB0); OUTREG(FPB1, pI830->saveFPB1); @@ -3746,13 +3749,15 @@ RestoreHWState(ScrnInfoPtr pScrn) OUTREG(DSPBSTRIDE, pI830->saveDSPBSTRIDE); OUTREG(DSPBPOS, pI830->saveDSPBPOS); OUTREG(DSPBBASE, pI830->saveDSPBBASE); + OUTREG(PIPEBSRC, pI830->savePIPEBSRC); - OUTREG(DSPACNTR, pI830->saveDSPACNTR); - OUTREG(DSPBCNTR, pI830->saveDSPBCNTR); OUTREG(PIPEACONF, pI830->savePIPEACONF); OUTREG(PIPEBCONF, pI830->savePIPEBCONF); - OUTREG(PIPEASRC, pI830->savePIPEASRC); - OUTREG(PIPEBSRC, pI830->savePIPEBSRC); + + OUTREG(DSPACNTR, pI830->saveDSPACNTR); + OUTREG(DSPBCNTR, pI830->saveDSPBCNTR); + + OUTREG(ADPA, pI830->saveADPA); return TRUE; } |