diff options
author | Dave Airlie <airlied@linux.ie> | 2007-04-25 09:52:22 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2007-04-25 09:52:22 +1000 |
commit | a3ee42207aab77d93655a82fdcb32be38268b85f (patch) | |
tree | 4c6fae707d6d422470fee3fab8110ec0f6a842ea /src | |
parent | 3828237200fc16d4d32664fb8358950c213d4897 (diff) |
radeon: another attempt at fixing the mergedfb refresh rate
This attempts to keep it inside the 32-bit limit when multiplying things out
later in the randr tree.
Let me know if I screwed this up..
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_mergedfb.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/radeon_mergedfb.c b/src/radeon_mergedfb.c index fa143cb2..abbc1606 100644 --- a/src/radeon_mergedfb.c +++ b/src/radeon_mergedfb.c @@ -215,8 +215,13 @@ RADEONCopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest, * extension to allow selecting among a number of modes whose merged result * looks identical but consists of different modes for CRT1 and CRT2 */ - mode->VRefresh = (float)((i->Clock * 1000.0 / i->HTotal / i->VTotal) * 100 + - (j->Clock * 1000.0 / j->HTotal / j->VTotal)); + { + float ref1, ref2; + ref1 = ((float)i->Clock * 100.0 / i->HTotal / i->VTotal) * 50.0; + ref2 = ((float)j->Clock * 100.0 / j->HTotal / j->VTotal) / 2.0; + + mode->VRefresh = (float) ref1 + ref2; + } mode->Clock = (int)(mode->VRefresh * 0.001 * mode->HTotal * mode->VTotal); |