diff --git a/src/i830.h b/src/i830.h index 199416a1..321827ad 100644 --- a/src/i830.h +++ b/src/i830.h @@ -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(PIPEACONF, pI830->savePIPEACONF); + OUTREG(PIPEBCONF, pI830->savePIPEBCONF); 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(ADPA, pI830->saveADPA); return TRUE; }