From 705ffc1776df2240f337dd896223b371c12bc19f Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Wed, 15 Sep 2010 23:23:56 -0400 Subject: 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 --- src/pm2_dac.c | 8 +++----- 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)); -- cgit v1.2.3