diff --git a/src/i830.h b/src/i830.h index 7ae17b44..ca48b522 100644 --- a/src/i830.h +++ b/src/i830.h @@ -499,6 +499,7 @@ typedef struct _I830Rec { CARD32 saveDSPAPOS; CARD32 saveDSPABASE; CARD32 saveDSPASURF; + CARD32 saveDSPATILEOFF; CARD32 saveFPB0; CARD32 saveFPB1; CARD32 saveDPLL_B; @@ -515,6 +516,7 @@ typedef struct _I830Rec { CARD32 saveDSPBPOS; CARD32 saveDSPBBASE; CARD32 saveDSPBSURF; + CARD32 saveDSPBTILEOFF; CARD32 saveVCLK_DIVISOR_VGA0; CARD32 saveVCLK_DIVISOR_VGA1; CARD32 saveVCLK_POST_DIV; diff --git a/src/i830_driver.c b/src/i830_driver.c index acb8354e..712b2ddb 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -1816,6 +1816,8 @@ SaveHWState(ScrnInfoPtr pScrn) if (IS_I965G(pI830)) { pI830->saveDSPASURF = INREG(DSPASURF); pI830->saveDSPBSURF = INREG(DSPBSURF); + pI830->saveDSPATILEOFF = INREG(DSPATILEOFF); + pI830->saveDSPBTILEOFF = INREG(DSPBTILEOFF); } pI830->saveVCLK_DIVISOR_VGA0 = INREG(VCLK_DIVISOR_VGA0); @@ -1910,7 +1912,10 @@ RestoreHWState(ScrnInfoPtr pScrn) OUTREG(PIPEASRC, pI830->savePIPEASRC); OUTREG(DSPABASE, pI830->saveDSPABASE); if (IS_I965G(pI830)) + { OUTREG(DSPASURF, pI830->saveDSPASURF); + OUTREG(DSPATILEOFF, pI830->saveDSPATILEOFF); + } OUTREG(PIPEACONF, pI830->savePIPEACONF); i830WaitForVblank(pScrn); OUTREG(DSPACNTR, pI830->saveDSPACNTR); @@ -1947,7 +1952,10 @@ RestoreHWState(ScrnInfoPtr pScrn) OUTREG(PIPEBSRC, pI830->savePIPEBSRC); OUTREG(DSPBBASE, pI830->saveDSPBBASE); if (IS_I965G(pI830)) + { OUTREG(DSPBSURF, pI830->saveDSPBSURF); + OUTREG(DSPBTILEOFF, pI830->saveDSPBTILEOFF); + } OUTREG(PIPEBCONF, pI830->savePIPEBCONF); i830WaitForVblank(pScrn); OUTREG(DSPBCNTR, pI830->saveDSPBCNTR);