diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-12-11 11:57:27 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-12-11 11:57:27 -0500 |
commit | f3d2ec3a5ae61215c792018320158750e7aa937c (patch) | |
tree | b166a8e2d7afba01dc6a51266ac08b072cf6ba40 /src/radeon.h | |
parent | 9b125312ab6edc585e4f5931a6a6de81e13b6acc (diff) |
RADEON: rewrite PLL computation
Algorithm adapted from BeOS radeon driver with some tweaks by me.
Actually calulate and use the reference divider rather than using the bios default.
Also, always calculate the PLL, rather than falling back to bios dividers.
This should fix bugs 12913, 13590, 13533, possibly others.
Diffstat (limited to 'src/radeon.h')
-rw-r--r-- | src/radeon.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/radeon.h b/src/radeon.h index fe491e87..b7f92888 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -288,6 +288,7 @@ typedef struct { CARD32 dot_clock_freq; CARD32 pll_output_freq; int feedback_div; + int reference_div; int post_div; /* PLL registers */ @@ -300,6 +301,7 @@ typedef struct { CARD32 dot_clock_freq_2; CARD32 pll_output_freq_2; int feedback_div_2; + int reference_div_2; int post_div_2; /* PLL2 registers */ @@ -370,6 +372,14 @@ typedef struct { CARD32 min_pll_freq; CARD32 max_pll_freq; CARD16 xclk; + + CARD32 min_ref_div; + CARD32 max_ref_div; + CARD32 min_feedback_div; + CARD32 max_feedback_div; + CARD32 pll_in_min; + CARD32 pll_in_max; + CARD32 best_vco; } RADEONPLLRec, *RADEONPLLPtr; typedef struct { |