From 8e819ced8397f0330fd44efa60fef89bd10ff70e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 Mar 2006 11:55:00 -0800 Subject: [PATCH] It appears from the specs that you have to wait for vblank after disabling the plane, not the pipe. --- src/i830_display.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/i830_display.c b/src/i830_display.c index d4c144ff..7d01c589 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -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);