summaryrefslogtreecommitdiff
path: root/src/legacy_crtc.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-04-22 11:42:18 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-04-22 11:42:18 -0400
commit24e4b73b4fbbb2c790e6120ede3caaa4e7e58359 (patch)
tree65d7192bce5b1a3f19464a693db48f2d11e58ba0 /src/legacy_crtc.c
parentefa0825a86a8dc0f03ebb42c576ed26189e9d4bb (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.c6
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)