diff --git a/src/i830_display.c b/src/i830_display.c index f7f250dc..6971e28a 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -765,9 +765,11 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, else pipeconf &= ~PIPEACONF_DOUBLE_WIDE; } +#if 1 dspcntr |= DISPLAY_PLANE_ENABLE; pipeconf |= PIPEACONF_ENABLE; dpll |= DPLL_VCO_ENABLE; +#endif if (is_lvds) { diff --git a/src/i830_driver.c b/src/i830_driver.c index 373bc219..998b36f2 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -2223,18 +2223,19 @@ RestoreHWState(ScrnInfoPtr pScrn) crtc->funcs->dpms(crtc, DPMSModeOff); } - OUTREG(FPA0, pI830->saveFPA0); - OUTREG(FPA1, pI830->saveFPA1); - if (IS_I965G(pI830)) - OUTREG(DPLL_A_MD, pI830->saveDPLL_A_MD); if (pI830->saveDPLL_A & DPLL_VCO_ENABLE) { OUTREG(DPLL_A, pI830->saveDPLL_A & ~DPLL_VCO_ENABLE); usleep(150); } + OUTREG(FPA0, pI830->saveFPA0); + OUTREG(FPA1, pI830->saveFPA1); OUTREG(DPLL_A, pI830->saveDPLL_A); usleep(150); - OUTREG(DPLL_A, pI830->saveDPLL_A); + if (IS_I965G(pI830)) + OUTREG(DPLL_A_MD, pI830->saveDPLL_A_MD); + else + OUTREG(DPLL_A, pI830->saveDPLL_A); usleep(150); OUTREG(HTOTAL_A, pI830->saveHTOTAL_A); @@ -2243,16 +2244,19 @@ RestoreHWState(ScrnInfoPtr pScrn) OUTREG(VTOTAL_A, pI830->saveVTOTAL_A); OUTREG(VBLANK_A, pI830->saveVBLANK_A); OUTREG(VSYNC_A, pI830->saveVSYNC_A); + OUTREG(DSPASTRIDE, pI830->saveDSPASTRIDE); OUTREG(DSPASIZE, pI830->saveDSPASIZE); OUTREG(DSPAPOS, pI830->saveDSPAPOS); - OUTREG(PIPEACONF, pI830->savePIPEACONF); - OUTREG(PIPEASRC, pI830->savePIPEASRC); OUTREG(DSPACNTR, pI830->saveDSPACNTR); OUTREG(DSPABASE, pI830->saveDSPABASE); if (IS_I965G(pI830)) { OUTREG(DSPASURF, pI830->saveDSPASURF); } + + OUTREG(PIPEASRC, pI830->savePIPEASRC); + OUTREG(PIPEACONF, pI830->savePIPEACONF); + for(i = 0; i < 256; i++) { OUTREG(PALETTE_A + (i << 2), pI830->savePaletteA[i]); } @@ -2296,6 +2300,8 @@ RestoreHWState(ScrnInfoPtr pScrn) if (!IS_I830(pI830) && !IS_845G(pI830)) OUTREG(PFIT_CONTROL, pI830->savePFIT_CONTROL); + OUTREG(VGACNTRL, pI830->saveVGACNTRL); + OUTREG(VCLK_DIVISOR_VGA0, pI830->saveVCLK_DIVISOR_VGA0); OUTREG(VCLK_DIVISOR_VGA1, pI830->saveVCLK_DIVISOR_VGA1); OUTREG(VCLK_POST_DIV, pI830->saveVCLK_POST_DIV); @@ -2305,8 +2311,6 @@ RestoreHWState(ScrnInfoPtr pScrn) (*output->funcs->restore) (output); } - OUTREG(VGACNTRL, pI830->saveVGACNTRL); - for(i = 0; i < 7; i++) { OUTREG(SWF0 + (i << 2), pI830->saveSWF[i]); OUTREG(SWF00 + (i << 2), pI830->saveSWF[i+7]);