diff options
author | Paul Menzel <paulepanter@users.sourceforge.net> | 2009-06-07 22:08:05 +0200 |
---|---|---|
committer | Paul Menzel <paulepanter@users.sourceforge.net> | 2009-06-07 22:08:05 +0200 |
commit | 5cdafb61c72cfc9c0daddcb2dae9b981e8f5d8b8 (patch) | |
tree | 8acb61c61b70d126c2f2b965d5a6ac3898968fb1 /src/i830_display.c | |
parent | be5e8111a0b6b5ff3d643bea6f8728637ae4d070 (diff) | |
parent | a7690d9f0b9a3e0628f51635ba78117b614edf1b (diff) | |
download | xf86-video-intel-frc-debian-unstable-with-frc-patches.tar.gz xf86-video-intel-frc-debian-unstable-with-frc-patches.tar.bz2 |
Merge branch 'upstream-unstable' into dufdebian-unstable-with-frc-patches
Diffstat (limited to 'src/i830_display.c')
-rw-r--r-- | src/i830_display.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/i830_display.c b/src/i830_display.c index dd1310fa..51230f12 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -99,9 +99,9 @@ struct intel_limit { #define I8XX_P2_LVDS_FAST 7 #define I8XX_P2_SLOW_LIMIT 165000 -#define I9XX_DOT_MIN 20000 +#define I9XX_DOT_MIN 12000 /* allow for PAL modes */ #define I9XX_DOT_MAX 400000 -#define I9XX_VCO_MIN 1400000 +#define I9XX_VCO_MIN 1000000 /* allow for PAL modes */ #define I9XX_VCO_MAX 2800000 #define IGD_VCO_MIN 1700000 #define IGD_VCO_MAX 3500000 @@ -1389,6 +1389,14 @@ static Bool i830_crtc_mode_fixup(xf86CrtcPtr crtc, DisplayModePtr mode, DisplayModePtr adjusted_mode) { + if (mode->Flags & V_INTERLACE) { + mode->CrtcVDisplay = adjusted_mode->CrtcVDisplay = mode->VDisplay; + mode->CrtcVSyncStart = adjusted_mode->CrtcVSyncStart = mode->VSyncStart; + mode->CrtcVSyncEnd = adjusted_mode->CrtcVSyncEnd = mode->VSyncEnd; + mode->CrtcVBlankStart = adjusted_mode->CrtcVBlankStart = mode->CrtcVDisplay; + mode->CrtcVBlankEnd = adjusted_mode->CrtcVBlankEnd = mode->VTotal; + mode->CrtcVTotal = adjusted_mode->CrtcVTotal = mode->VTotal; + } return TRUE; } @@ -1891,6 +1899,11 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, if (!DSPARB_HWCONTROL(pI830)) i830_update_dsparb(pScrn); + if (adjusted_mode->Flags & V_INTERLACE) { + pipeconf |= PIPECONF_INTERLACE_W_FIELD_INDICATION; + } else { + pipeconf &= ~PIPECONF_INTERLACE_W_FIELD_INDICATION; + } OUTREG(htot_reg, (adjusted_mode->CrtcHDisplay - 1) | ((adjusted_mode->CrtcHTotal - 1) << 16)); OUTREG(hblank_reg, (adjusted_mode->CrtcHBlankStart - 1) | |