xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Tue Mar 11 10:53:48 PDT 2008
src/atombios_crtc.c | 7 ++++++-
src/radeon.h | 1 +
src/radeon_crtc.c | 6 ++++--
3 files changed, 11 insertions(+), 3 deletions(-)
New commits:
commit eb90e235b58c94f3d4d75394725ab2fe246a42ff
Author: Alex Deucher <alex at cube.(none)>
Date: Tue Mar 11 13:53:54 2008 -0400
DCE3: adjust PLL for DCE3 chips
this fixes stability issues on digital outputs and certain modes.
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
index 7c628bf..d18f2cf 100644
--- a/src/atombios_crtc.c
+++ b/src/atombios_crtc.c
@@ -174,6 +174,7 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode)
SET_PIXEL_CLOCK_PS_ALLOCATION spc_param;
PIXEL_CLOCK_PARAMETERS_V2 *spc2_ptr;
PIXEL_CLOCK_PARAMETERS_V3 *spc3_ptr;
+ int pll_flags = 0;
xf86OutputPtr output;
RADEONOutputPrivatePtr radeon_output = NULL;
@@ -185,7 +186,11 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode)
if (IS_AVIVO_VARIANT) {
CARD32 temp;
- RADEONComputePLL(&info->pll, mode->Clock, &temp, &fb_div, &ref_div, &post_div, 0);
+
+ if (IS_DCE3_VARIANT)
+ pll_flags |= RADEON_PLL_DCE3;
+
+ RADEONComputePLL(&info->pll, mode->Clock, &temp, &fb_div, &ref_div, &post_div, pll_flags);
sclock = temp;
/* disable spread spectrum clocking for now -- thanks Hedy Lamarr */
diff --git a/src/radeon.h b/src/radeon.h
index fe45428..a67f375 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -214,6 +214,7 @@ typedef struct {
#define RADEON_PLL_NO_ODD_POST_DIV (1 << 1)
#define RADEON_PLL_USE_REF_DIV (1 << 2)
#define RADEON_PLL_LEGACY (1 << 3)
+#define RADEON_PLL_DCE3 (1 << 4)
typedef struct {
CARD16 reference_freq;
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 87514b0..b2c6e13 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -190,8 +190,10 @@ RADEONComputePLL(RADEONPLLPtr pll,
best_vco_diff = vco_diff;
}
}
- if (best_freq == freq)
- break;
+ if (!(flags & RADEON_PLL_DCE3)) {
+ if (best_freq == freq)
+ break;
+ }
}
ErrorF("best_freq: %u\n", (unsigned int)best_freq);
More information about the xorg-commit
mailing list