xf86-video-intel: Branch 'modesetting' - src/i830_display.c src/i830_driver.c

Keith Packard keithp at kemper.freedesktop.org
Sun Dec 17 02:54:01 EET 2006


 src/i830_display.c |    2 ++
 src/i830_driver.c  |   22 +++++++++++++---------
 2 files changed, 15 insertions(+), 9 deletions(-)

New commits:
diff-tree 9b1a1b170befae2e705c23ce295837d0d13b60c0 (from 60411bc4d0b3c53850c73b7246d5f7ed5c2d4084)
Author: Keith Packard <keithp at mandolin.keithp.com>
Date:   Sat Dec 16 16:53:49 2006 -0800

    reorder restore writes for 965 VGA

diff --git a/src/i830_display.c b/src/i830_display.c
index f7f250d..6971e28 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -765,9 +765,11 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, Dis
 	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 373bc21..998b36f 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]);



More information about the xorg-commit mailing list