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