summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2010-09-15 23:23:56 -0400
committerMatt Turner <mattst88@gmail.com>2010-09-15 23:23:56 -0400
commit705ffc1776df2240f337dd896223b371c12bc19f (patch)
tree398c1c3cc294ad91e396639b11848e894ee1fc98
parent7050a255115b2c5a70083d2d4ad775548ef701f7 (diff)
Fix timing errors, as per documentation
pm2_dac.c: - VsEnd and VsStart should have 1 subtracted, say the docs. This also matches with the PM3 and PM4 docs, and is what the pm2fb Linux kernel driver does. - Move VsTotal subtract-1 to instantiation, since it doesn't need to be shifted before the subtraction, unlike horizontal timings (HTotal, for instance). - Remove subtract-1 from HsStart, as the docs don't say this is correct. This also matches with the PM3 and PM4 docs, and is what the pm2fb Linux kernel driver does. pm3_dac.c: - Subtract 1 from HTotal after the Shiftbpp, as the docs say. This error has existed since xf86-video-glint was imported into git and has been propagated to the pm3fb Linux kernel driver. Signed-off-by: Matt Turner <mattst88@gmail.com>
-rw-r--r--src/pm2_dac.c8
-rw-r--r--src/pm3_dac.c2
2 files changed, 4 insertions, 6 deletions
diff --git a/src/pm2_dac.c b/src/pm2_dac.c
index 8541582..3e5b53b 100644
--- a/src/pm2_dac.c
+++ b/src/pm2_dac.c
@@ -122,9 +122,9 @@ Permedia2Init(ScrnInfoPtr pScrn, DisplayModePtr mode)
pReg->glintRegs[PMScreenStride >> 3] =
Shiftbpp(pScrn,pScrn->displayWidth>>1);
- pReg->glintRegs[PMVTotal >> 3] = mode->CrtcVTotal;
- pReg->glintRegs[PMVsEnd >> 3] = temp2 + temp4;
- pReg->glintRegs[PMVsStart >> 3] = temp2;
+ pReg->glintRegs[PMVTotal >> 3] = mode->CrtcVTotal - 1;
+ pReg->glintRegs[PMVsEnd >> 3] = temp2 + temp4 - 1;
+ pReg->glintRegs[PMVsStart >> 3] = temp2 - 1;
pReg->glintRegs[PMVbEnd >> 3] = mode->CrtcVTotal - mode->CrtcVDisplay;
/* The hw cursor needs /VSYNC to recognize vert retrace. We'll stick
@@ -146,8 +146,6 @@ Permedia2Init(ScrnInfoPtr pScrn, DisplayModePtr mode)
pReg->glintRegs[VClkCtl >> 3] = (GLINT_READ_REG(VClkCtl) & 0xFFFFFFFC);
pReg->glintRegs[PMScreenBase >> 3] = 0;
pReg->glintRegs[PMHTotal >> 3] -= 1;
- pReg->glintRegs[PMHsStart >> 3] -= 1;
- pReg->glintRegs[PMVTotal >> 3] -= 1;
pReg->glintRegs[ChipConfig >> 3] = GLINT_READ_REG(ChipConfig) & 0xFFFFFFDD;
diff --git a/src/pm3_dac.c b/src/pm3_dac.c
index 34c3a00..b99af0e 100644
--- a/src/pm3_dac.c
+++ b/src/pm3_dac.c
@@ -502,7 +502,7 @@ Permedia3Init(ScrnInfoPtr pScrn, DisplayModePtr mode, GLINTRegPtr pReg)
temp3 = mode->CrtcHSyncEnd - mode->CrtcHSyncStart;
temp4 = mode->CrtcVSyncEnd - mode->CrtcVSyncStart;
- STOREREG(PMHTotal, Shiftbpp(pScrn, mode->CrtcHTotal - 1));
+ STOREREG(PMHTotal, Shiftbpp(pScrn, mode->CrtcHTotal) - 1);
STOREREG(PMHsEnd, Shiftbpp(pScrn, temp1 + temp3));
STOREREG(PMHsStart, Shiftbpp(pScrn, temp1));
STOREREG(PMHbEnd, Shiftbpp(pScrn, mode->CrtcHTotal - mode->CrtcHDisplay));