xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Wed Oct 3 18:41:32 PDT 2007
src/radeon_output.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
New commits:
diff-tree 597dffce9bdc200003d0be880235258386a0bdd7 (from cc0c2d8e61600652b1f9cb3dc49db2ef62b1e40d)
Author: Alex Deucher <alex at botch2.(none)>
Date: Wed Oct 3 21:43:08 2007 -0400
RADEON: final fix for RMX/LVDS
It seems that on quite a few laptops the LVDS H/V timing
from the bios tables are way off or just doesn't work period.
Either we are using it wrong or we need some additional checks
when we parse it. Only the dot clock seems to really matter,
so use cvt modes and update the dotclock. This seems to work
correctly in all cases.
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 27c6928..3f8b772 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -750,6 +750,8 @@ radeon_mode_fixup(xf86OutputPtr output,
{
RADEONOutputPrivatePtr radeon_output = output->driver_private;
+ radeon_output->Flags &= ~RADEON_USE_RMX;
+
/* decide if we are using RMX */
if ((radeon_output->MonType == MT_LCD || radeon_output->MonType == MT_DFP)
&& radeon_output->rmx_type != RMX_OFF) {
@@ -760,20 +762,13 @@ radeon_mode_fixup(xf86OutputPtr output,
if (mode->HDisplay < radeon_output->PanelXRes ||
mode->VDisplay < radeon_output->PanelYRes)
radeon_output->Flags |= RADEON_USE_RMX;
- } else
- radeon_output->Flags &= ~RADEON_USE_RMX;
+ }
}
- /* update crtc timing for LVDS always and DFP if RMX is active */
+ /* 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))) {
- 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;
}
More information about the xorg-commit
mailing list