xf86-video-intel: 2 commits - src/i830_display.c src/i830_lvds.c

Eric Anholt anholt at kemper.freedesktop.org
Mon Jul 2 15:52:22 PDT 2007


 src/i830_display.c |    4 ++--
 src/i830_lvds.c    |   18 ++++++++++++------
 2 files changed, 14 insertions(+), 8 deletions(-)

New commits:
diff-tree 2b9961eb9ce8734565ecdb01cb11610714d7f610 (from 3d9ee8b2991ec0da8cc21b8455ff7f00fd0335b5)
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 2 15:16:33 2007 -0700

    Fix reversed LVDS dither enabling logic on GM965.

diff --git a/src/i830_display.c b/src/i830_display.c
index aba86ae..ebde525 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1019,9 +1019,9 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, Dis
 	if (IS_I965G(pI830))
 	{
 	    if ((lvds & LVDS_A3_POWER_MASK) == LVDS_A3_POWER_UP)
-		lvds |= LVDS_DITHER_ENABLE;
-	    else
 		lvds &= ~LVDS_DITHER_ENABLE;
+	    else
+		lvds |= LVDS_DITHER_ENABLE;
 	}
 
 	OUTREG(LVDS, lvds);
diff-tree 3d9ee8b2991ec0da8cc21b8455ff7f00fd0335b5 (from 1e2e301348b4168aeed38b3fdc6b0e43d5678a86)
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 2 14:38:28 2007 -0700

    Bug #11365: Disable the panel fitter unless it's needed for the chosen mode.
    
    The automatic panel scaling appears to choose bad sampling on some GM965
    hardware for 1:1 mapping modes, and there's no real sense in having it on
    if we just want 1:1.

diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index d469815..e2c6e3c 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -261,17 +261,23 @@ i830_lvds_mode_set(xf86OutputPtr output,
     I830CrtcPrivatePtr	    intel_crtc = output->crtc->driver_private;
     CARD32		    pfit_control;
 
-    /* The LVDS pin pair will already have been turned on in the
+    /* The LVDS pin pair will already have been turned on in
      * i830_crtc_mode_set since it has a large impact on the DPLL settings.
      */
 
-    /* Enable automatic panel scaling so that non-native modes fill the
-     * screen.  Should be enabled before the pipe is enabled, according to
+    /* Enable automatic panel scaling for non-native modes so that they fill
+     * the screen.  Should be enabled before the pipe is enabled, according to
      * register description and PRM.
      */
-    pfit_control = (PFIT_ENABLE |
-		    VERT_AUTO_SCALE | HORIZ_AUTO_SCALE |
-		    VERT_INTERP_BILINEAR | HORIZ_INTERP_BILINEAR);
+    if (mode->HDisplay != adjusted_mode->HDisplay ||
+	mode->VDisplay != adjusted_mode->VDisplay)
+    {
+	pfit_control = PFIT_ENABLE |
+	    VERT_AUTO_SCALE | HORIZ_AUTO_SCALE |
+	    VERT_INTERP_BILINEAR | HORIZ_INTERP_BILINEAR;
+    } else {
+	pfit_control = 0;
+    }
 
     if (!IS_I965G(pI830)) {
 	if (dev_priv->panel_wants_dither)


More information about the xorg-commit mailing list