xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Tue Oct 16 15:54:34 PDT 2007


 src/radeon_output.c |   28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

New commits:
commit f2eb5c1cc69a4f7b0754ec6b2efde4fa1650ab6d
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Tue Oct 16 18:54:28 2007 -0400

    RADEON: finish fixing LVDS/RMX
    
    For panels, both the mode and crtc values need to be updated based
    on the native mode timing.  This shoudl fix any remaining problems
    with RMX.

diff --git a/src/radeon_output.c b/src/radeon_output.c
index e2f26e7..6acbb53 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -777,15 +777,25 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
     }
 
     /* update timing for LVDS and DFP if RMX is active */
-    if (radeon_output->Flags & RADEON_USE_RMX) {
-	adjusted_mode->CrtcHTotal     = mode->CrtcHDisplay + radeon_output->HBlank;
-	adjusted_mode->CrtcHSyncStart = mode->CrtcHDisplay + radeon_output->HOverPlus;
-	adjusted_mode->CrtcHSyncEnd   = mode->CrtcHSyncStart + radeon_output->HSyncWidth;
-	adjusted_mode->CrtcVTotal     = mode->CrtcVDisplay + radeon_output->VBlank;
-	adjusted_mode->CrtcVSyncStart = mode->CrtcVDisplay + radeon_output->VOverPlus;
-	adjusted_mode->CrtcVSyncEnd   = mode->CrtcVSyncStart + radeon_output->VSyncWidth;
-	adjusted_mode->Clock          = radeon_output->DotClock;
-	adjusted_mode->Flags          = radeon_output->Flags;
+    if ((radeon_output->MonType == MT_LCD) || (radeon_output->Flags & RADEON_USE_RMX)) {
+	/* set to the panel's native mode */
+	adjusted_mode->HTotal = radeon_output->PanelXRes + radeon_output->HBlank;
+	adjusted_mode->HSyncStart = radeon_output->PanelXRes + radeon_output->HOverPlus;
+	adjusted_mode->HSyncEnd = adjusted_mode->HSyncStart + radeon_output->HSyncWidth;
+	adjusted_mode->VTotal = radeon_output->PanelYRes + radeon_output->VBlank;
+	adjusted_mode->VSyncStart = radeon_output->PanelYRes + radeon_output->VOverPlus;
+	adjusted_mode->VSyncEnd = adjusted_mode->VSyncStart + radeon_output->VSyncWidth;
+	/* update crtc values */
+	xf86SetModeCrtc(adjusted_mode, INTERLACE_HALVE_V);
+	/* adjust crtc values */
+	adjusted_mode->CrtcHTotal = adjusted_mode->CrtcHDisplay + radeon_output->HBlank;
+	adjusted_mode->CrtcHSyncStart = adjusted_mode->CrtcHDisplay + radeon_output->HOverPlus;
+	adjusted_mode->CrtcHSyncEnd = adjusted_mode->CrtcHSyncStart + radeon_output->HSyncWidth;
+	adjusted_mode->CrtcVTotal = adjusted_mode->CrtcVDisplay + radeon_output->VBlank;
+	adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVDisplay + radeon_output->VOverPlus;
+	adjusted_mode->CrtcVSyncEnd = adjusted_mode->CrtcVSyncStart + radeon_output->VSyncWidth;
+	adjusted_mode->Clock = radeon_output->DotClock;
+	adjusted_mode->Flags = radeon_output->Flags;
     }
 
     return TRUE;


More information about the xorg-commit mailing list