diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-04-22 11:42:18 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-04-22 11:42:18 -0400 |
commit | 24e4b73b4fbbb2c790e6120ede3caaa4e7e58359 (patch) | |
tree | 65d7192bce5b1a3f19464a693db48f2d11e58ba0 /src/legacy_crtc.c | |
parent | efa0825a86a8dc0f03ebb42c576ed26189e9d4bb (diff) |
radeon pll: add support for fractional feedback divs
Allows us to hit dot clocks much closer, especially on
chips with non-27 Mhz reference clocks like most IGP chips.
This should fix most flickering and blanking problems with
non-exact dot clocks.
Diffstat (limited to 'src/legacy_crtc.c')
-rw-r--r-- | src/legacy_crtc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/legacy_crtc.c b/src/legacy_crtc.c index 3759f05b..7a3a920a 100644 --- a/src/legacy_crtc.c +++ b/src/legacy_crtc.c @@ -1193,6 +1193,7 @@ RADEONInitPLLRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save, { RADEONInfoPtr info = RADEONPTR(pScrn); uint32_t feedback_div = 0; + uint32_t frac_fb_div = 0; uint32_t reference_div = 0; uint32_t post_divider = 0; uint32_t freq = 0; @@ -1225,7 +1226,7 @@ RADEONInitPLLRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save, return; } - RADEONComputePLL(pll, mode->Clock, &freq, &feedback_div, &reference_div, &post_divider, flags); + RADEONComputePLL(pll, mode->Clock, &freq, &feedback_div, &frac_fb_div, &reference_div, &post_divider, flags); for (post_div = &post_divs[0]; post_div->divider; ++post_div) { if (post_div->divider == post_divider) @@ -1274,6 +1275,7 @@ RADEONInitPLL2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save, { RADEONInfoPtr info = RADEONPTR(pScrn); uint32_t feedback_div = 0; + uint32_t frac_fb_div = 0; uint32_t reference_div = 0; uint32_t post_divider = 0; uint32_t freq = 0; @@ -1304,7 +1306,7 @@ RADEONInitPLL2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save, return; } - RADEONComputePLL(pll, mode->Clock, &freq, &feedback_div, &reference_div, &post_divider, flags); + RADEONComputePLL(pll, mode->Clock, &freq, &feedback_div, &frac_fb_div, &reference_div, &post_divider, flags); for (post_div = &post_divs[0]; post_div->divider; ++post_div) { if (post_div->divider == post_divider) |