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