diff --git a/src/i830_display.c b/src/i830_display.c index 0632f3a..2cc53e8 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -795,6 +795,7 @@ i830_crtc_dpms(xf86CrtcPtr crtc, int mode) int plane = intel_crtc->plane; int dpll_reg = (pipe == 0) ? DPLL_A : DPLL_B; int pipeconf_reg = (pipe == 0) ? PIPEACONF : PIPEBCONF; + int pipestat_reg = (pipe == 0) ? PIPEASTAT : PIPEBSTAT; int dspcntr_reg = (plane == 0) ? DSPACNTR : DSPBCNTR; int dspbase_reg = (plane == 0) ? DSPABASE : DSPBBASE; uint32_t temp; @@ -900,6 +901,9 @@ i830_crtc_dpms(xf86CrtcPtr crtc, int mode) /* Wait for the clocks to turn off. */ usleep(150); + + /* Clear FIFO underrun status that may have occurred normally */ + OUTREG(pipestat_reg, INREG(pipestat_reg) | FIFO_UNDERRUN); } /* Disable the VGA plane that we never use. */