diff options
author | Matt Turner <mattst88@gmail.com> | 2010-09-15 23:23:56 -0400 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2010-09-15 23:23:56 -0400 |
commit | 705ffc1776df2240f337dd896223b371c12bc19f (patch) | |
tree | 398c1c3cc294ad91e396639b11848e894ee1fc98 | |
parent | 7050a255115b2c5a70083d2d4ad775548ef701f7 (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.c | 8 | ||||
-rw-r--r-- | src/pm3_dac.c | 2 |
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)); |