xf86-video-ati: Branch 'master' - 2 commits

Alex Deucher agd5f at kemper.freedesktop.org
Mon Oct 15 17:34:00 PDT 2007


 src/radeon_crtc.c   |   12 ++++--------
 src/radeon_output.c |   12 ++++++++----
 2 files changed, 12 insertions(+), 12 deletions(-)

New commits:
commit 571548b2b95ce289f26a77c11deb6266f0b18516
Author: Alex Deucher <alex at botch2.(none)>
Date:   Mon Oct 15 20:33:56 2007 -0400

    RADEON: use native timing for RMX
    
    RMX should work again with native timings after the previous
    patch.

diff --git a/src/radeon_output.c b/src/radeon_output.c
index a5b1393..45a605d 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -776,10 +776,14 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 	}
     }
 
-    /* update clock for LVDS always and DFP if RMX is active */
-    if ((radeon_output->MonType == MT_LCD) ||
-	((radeon_output->MonType == MT_DFP) &&
-	 (radeon_output->Flags & RADEON_USE_RMX))) {
+    /* 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;
     }
commit 2f87bff293a343b40c1be096933a5ae126632468
Author: Alex Deucher <alex at botch2.(none)>
Date:   Mon Oct 15 20:06:28 2007 -0400

    RADEON: Fix subtle change in crtc reg init
    
    At some point we changed how hsync_wid and vsync_wid were clipped.
    Previously we used the field size as a mask when building the
    register.  This got changed to setting the value to the field
    size if it was greater.  this probably explains number stange
    mode bugs.

diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 4637763..eeb1c6c 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -348,11 +348,10 @@ RADEONInitCrtcRegisters(xf86CrtcPtr crtc, RADEONSavePtr save,
 
     hsync_wid = (mode->CrtcHSyncEnd - mode->CrtcHSyncStart) / 8;
     if (!hsync_wid)       hsync_wid = 1;
-    if (hsync_wid > 0x3f) hsync_wid = 0x3f;
     hsync_start = mode->CrtcHSyncStart - 8;
 
     save->crtc_h_sync_strt_wid = ((hsync_start & 0x1fff)
-				  | (hsync_wid << 16)
+				  | ((hsync_wid & 0x3f) << 16)
 				  | ((mode->Flags & V_NHSYNC)
 				     ? RADEON_CRTC_H_SYNC_POL
 				     : 0));
@@ -363,10 +362,9 @@ RADEONInitCrtcRegisters(xf86CrtcPtr crtc, RADEONSavePtr save,
 
     vsync_wid = mode->CrtcVSyncEnd - mode->CrtcVSyncStart;
     if (!vsync_wid)       vsync_wid = 1;
-    if (vsync_wid > 0x1f) vsync_wid = 0x1f;
 
     save->crtc_v_sync_strt_wid = (((mode->CrtcVSyncStart - 1) & 0xfff)
-				  | (vsync_wid << 16)
+				  | ((vsync_wid & 0x1f) << 16)
 				  | ((mode->Flags & V_NVSYNC)
 				     ? RADEON_CRTC_V_SYNC_POL
 				     : 0));
@@ -545,11 +543,10 @@ RADEONInitCrtc2Registers(xf86CrtcPtr crtc, RADEONSavePtr save,
 
     hsync_wid = (mode->CrtcHSyncEnd - mode->CrtcHSyncStart) / 8;
     if (!hsync_wid)       hsync_wid = 1;
-    if (hsync_wid > 0x3f) hsync_wid = 0x3f;
     hsync_start = mode->CrtcHSyncStart - 8;
 
     save->crtc2_h_sync_strt_wid = ((hsync_start & 0x1fff)
-				   | (hsync_wid << 16)
+				   | ((hsync_wid & 0x3f) << 16)
 				   | ((mode->Flags & V_NHSYNC)
 				      ? RADEON_CRTC_H_SYNC_POL
 				      : 0));
@@ -560,10 +557,9 @@ RADEONInitCrtc2Registers(xf86CrtcPtr crtc, RADEONSavePtr save,
 
     vsync_wid = mode->CrtcVSyncEnd - mode->CrtcVSyncStart;
     if (!vsync_wid)       vsync_wid = 1;
-    if (vsync_wid > 0x1f) vsync_wid = 0x1f;
 
     save->crtc2_v_sync_strt_wid = (((mode->CrtcVSyncStart - 1) & 0xfff)
-				   | (vsync_wid << 16)
+				   | ((vsync_wid & 0x1f) << 16)
 				   | ((mode->Flags & V_NVSYNC)
 				      ? RADEON_CRTC2_V_SYNC_POL
 				      : 0));


More information about the xorg-commit mailing list