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

Eric Anholt anholt at kemper.freedesktop.org
Mon Jul 3 23:05:38 EEST 2006


 src/i830_display.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

New commits:
diff-tree dfd7fef457c048c9f0d826e37d91453d9e1485b9 (from 5d07ebdf4f23e16fb8f60eafeadc947701e7877c)
Author: Eric Anholt <anholt at FreeBSD.org>
Date:   Mon Jul 3 12:01:57 2006 -0700

    Bug #7375: Don't double-free the current XF86 mode after a randr reprobe.

diff --git a/src/i830_display.c b/src/i830_display.c
index e63800d..b5461c2 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -828,6 +828,7 @@ i830SetMode(ScrnInfoPtr pScrn, DisplayMo
 	 */
 	xfree(pI830->savedCurrentMode->name);
 	xfree(pI830->savedCurrentMode);
+	pI830->savedCurrentMode = NULL;
 	    
 	/* If we might have enabled/disabled some pipes, we need to reset
 	 * cloning mode support.
diff-tree 5d07ebdf4f23e16fb8f60eafeadc947701e7877c (from 48f27ac62128251640a9b1ca54f63376676b47eb)
Author: Eric Anholt <anholt at FreeBSD.org>
Date:   Mon Jul 3 11:59:21 2006 -0700

    Only override display size with the XFree86 mode's for actual panel scaling.

diff --git a/src/i830_display.c b/src/i830_display.c
index 24103cb..e63800d 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -361,8 +361,8 @@ i830PipeSetMode(ScrnInfoPtr pScrn, Displ
     vtot = (pMode->CrtcVDisplay - 1) | ((pMode->CrtcVTotal - 1) << 16);
     vblank = (pMode->CrtcVBlankStart - 1) | ((pMode->CrtcVBlankEnd - 1) << 16);
     vsync = (pMode->CrtcVSyncStart - 1) | ((pMode->CrtcVSyncEnd - 1) << 16);
-    pipesrc = ((pMasterMode->HDisplay - 1) << 16) | (pMasterMode->VDisplay - 1);
-    dspsize = ((pMasterMode->VDisplay - 1) << 16) | (pMasterMode->HDisplay - 1);
+    pipesrc = ((pMode->HDisplay - 1) << 16) | (pMode->VDisplay - 1);
+    dspsize = ((pMode->VDisplay - 1) << 16) | (pMode->HDisplay - 1);
     pixel_clock = pMode->Clock;
     if (outputs & PIPE_LCD_ACTIVE && pI830->panel_fixed_hactive != 0)
     {
@@ -390,6 +390,15 @@ i830PipeSetMode(ScrnInfoPtr pScrn, Displ
 		((pI830->panel_fixed_vactive + pI830->panel_fixed_vsyncoff +
 		  pI830->panel_fixed_vsyncwidth - 1) << 16);
 	pixel_clock = pI830->panel_fixed_clock;
+
+	if (pMasterMode->HDisplay <= pI830->panel_fixed_hactive &&
+	    pMasterMode->HDisplay <= pI830->panel_fixed_vactive)
+	{
+	    pipesrc = ((pMasterMode->HDisplay - 1) << 16) |
+		       (pMasterMode->VDisplay - 1);
+	    dspsize = ((pMasterMode->VDisplay - 1) << 16) |
+		       (pMasterMode->HDisplay - 1);
+	}
     }
 
     if (pMode->Clock >= 100000)



More information about the xorg-commit mailing list