summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Glisse <glisse@localhost.localdomain>2007-07-19 19:25:20 +0200
committerJerome Glisse <glisse@localhost.localdomain>2007-07-19 19:25:20 +0200
commite03a0c86190f74962a6ff59602f274e27353d6ae (patch)
tree20f85c3f6a34dcd219e77e7671a02a987a9a8580
parent830e10b7fe41c58e2fb61c6778fe59be0febdfbd (diff)
avivo: fix previous commit on PLL (usual cut & paste bug introduction).
-rw-r--r--xorg/avivo_crtc.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/xorg/avivo_crtc.c b/xorg/avivo_crtc.c
index 45fffcd..7dfae82 100644
--- a/xorg/avivo_crtc.c
+++ b/xorg/avivo_crtc.c
@@ -121,7 +121,7 @@ avivo_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode)
double c;
int div1, div2, clock;
int sdiv1, sdiv2, smul, sclock;
- int tdiv1, tdiv2, tmul, tclock;
+ int mul;
c = (((double)mode->Clock) * 40.0) / 1080000.0;
clock = mode->Clock;
@@ -130,17 +130,15 @@ avivo_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode)
smul = 0;
for (div1 = 2; div1 <= 6; div1++) {
for (div2 = div1 + 1; div2 < (div1 + 14); div2++) {
- tmul = ceil(c * div1 * div2);
- tdiv1 = div1;
- tdiv2 = div2;
- tclock = (tmul * 1080000) / (40 * tdiv1 * tdiv2);
- if ((tclock - clock) >= 0 &&
- fabsl(sclock - clock) > fabsl(tclock - clock) &&
- tmul < 256 && (tdiv1 * tdiv2) > (sdiv1 * sdiv2)) {
- sdiv1 = tdiv1;
- sdiv2 = tdiv2;
- smul = tmul;
- sclock = tclock;
+ mul = ceil(c * div1 * div2);
+ clock = (mul * 1080000) / (40 * div1 * div2);
+ if ((div1 * div2) > 20 && (clock - mode->Clock) >= 0 &&
+ fabsl(sclock - mode->Clock) >= fabsl(clock - mode->Clock) &&
+ mul < 256 && (div1 * div2) > (sdiv1 * sdiv2)) {
+ sdiv1 = div1;
+ sdiv2 = div2;
+ smul = mul;
+ sclock = clock;
}
}
}