From 5d07ebdf4f23e16fb8f60eafeadc947701e7877c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 3 Jul 2006 11:59:21 -0700 Subject: [PATCH] Only override display size with the XFree86 mode's for actual panel scaling. --- src/i830_display.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/i830_display.c b/src/i830_display.c index 24103cb7..e63800da 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -361,8 +361,8 @@ i830PipeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode, int pipe) 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, DisplayModePtr pMode, int pipe) ((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)