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 <[email protected]>
---
I know there isn't much interest in this hardware, but I'd really appreciate
a couple of people looking over this change to make sure I didn't totally
hose something. Acked-by's would be excellent.

(Is there any way I can actually tell that this change makes a difference?)

 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));
-- 
1.7.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to