It appears from the specs that you have to wait for vblank after disabling the

plane, not the pipe.
This commit is contained in:
Eric Anholt 2006-03-02 11:55:00 -08:00 committed by Eric Anholt
parent ee2410b965
commit 8e819ced83
1 changed files with 6 additions and 6 deletions

View File

@ -384,13 +384,13 @@ i830PipeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode, int pipe)
temp = INREG(DSPACNTR);
OUTREG(DSPACNTR, temp & ~DISPLAY_PLANE_ENABLE);
/* Wait for vblank for the disable to take effect */
i830WaitForVblank(pScrn);
/* Next, disable display pipes */
temp = INREG(PIPEACONF);
OUTREG(PIPEACONF, temp & ~PIPEACONF_ENABLE);
/* Wait for vblank for the disable to take effect */
i830WaitForVblank(pScrn);
OUTREG(FPA0, fp);
OUTREG(DPLL_A, dpll);
OUTREG(HTOTAL_A, htot);
@ -416,13 +416,13 @@ i830PipeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode, int pipe)
temp = INREG(DSPBCNTR);
OUTREG(DSPBCNTR, temp & ~DISPLAY_PLANE_ENABLE);
/* Wait for vblank for the disable to take effect */
i830WaitForVblank(pScrn);
/* Next, disable display pipes */
temp = INREG(PIPEBCONF);
OUTREG(PIPEBCONF, temp & ~PIPEBCONF_ENABLE);
/* Wait for vblank for the disable to take effect */
i830WaitForVblank(pScrn);
OUTREG(FPB0, fp);
OUTREG(DPLL_B, dpll);
OUTREG(HTOTAL_B, htot);