diff options
author | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2010-11-02 21:48:18 +0000 |
---|---|---|
committer | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2010-11-02 21:48:18 +0000 |
commit | 1a8d4cbfe704336edb6e59d9d8b3bfcb964e7744 (patch) | |
tree | bea2da1b1ceac4d4313a06ce821eef34dbd658f8 | |
parent | b53fd0c2454be44f45e145688290543e05b93115 (diff) |
update VX855 FIFO
-rw-r--r-- | src/via_bandwidth.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/via_bandwidth.c b/src/via_bandwidth.c index b01974d..82b9bef 100644 --- a/src/via_bandwidth.c +++ b/src/via_bandwidth.c @@ -257,9 +257,10 @@ ViaSetPrimaryFIFO(ScrnInfoPtr pScrn, DisplayModePtr mode) break; case VIA_VX855: hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 = 0xC7 */ - /* TODO Formula for SR16 is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */ - hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 = 0x50 */ - hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 = 0x50 */ + /* Formula for {SR16,0,5},{SR16,7,7} is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */ + hwp->writeSeq(hwp, 0x16, 0x90); /* 320/4 = 80 = 0x50 */ + /* Formula for {SR18,0,5},{SR18,7,7} is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */ + hwp->writeSeq(hwp, 0x18, 0x90); /* 320/4 = 80 = 0x50 */ hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 = 0x28 */ break; default: @@ -446,8 +447,8 @@ ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayModePtr mode) break; case VIA_VX800: /* {CR68,4,7},{CR94,7,7},{CR95,7,7} : 96/8-1 = 0x0B */ - ViaCrtcMask(hwp, 0x68, 0xA0, 0xF0); - ViaCrtcMask(hwp, 0x94, 0x00, 0x80); + ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); /* ((0x0B & 0x0F) << 4)) = 0xB0 */ + ViaCrtcMask(hwp, 0x94, 0x00, 0x80); /* ((0x0B & 0x10) << 3)) = 0x00 */ ViaCrtcMask(hwp, 0x95, 0x00, 0x80); /* {CR68,0,3},{CR95,4,6} : 64/4 = 0x10 */ ViaCrtcMask(hwp, 0x68, 0x04, 0x0F); @@ -462,16 +463,16 @@ ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayModePtr mode) ViaCrtcMask(hwp, 0x94, 0x20, 0x7F); break; case VIA_VX855: - /* {CR68,4,7},{CR94,7,7},{CR95,7,7} : 200/8-1 = 0x7c */ - ViaCrtcMask(hwp, 0x68, 0xF0, 0xF0); - ViaCrtcMask(hwp, 0x94, 0x00, 0x80); - ViaCrtcMask(hwp, 0x95, 0x00, 0x80); + /* {CR68,4,7},{CR94,7,7},{CR95,7,7} : 200/8-1 = 24 = 0x18 */ + ViaCrtcMask(hwp, 0x68, 0x80, 0xF0); /* ((0x18 & 0x0F) << 4)) = 0x80 */ + ViaCrtcMask(hwp, 0x94, 0x80, 0x80); /* ((0x18 & 0x10) << 3)) = 0x80 */ + ViaCrtcMask(hwp, 0x95, 0x00, 0x80); /* ((0x18 & 0x20) << 2)) = 0x00 */ /* {CR68,0,3},{CR95,4,6} : 160/4 = 0x28 */ - ViaCrtcMask(hwp, 0x68, 0x00, 0x0F); - ViaCrtcMask(hwp, 0x95, 0x10, 0x70); + ViaCrtcMask(hwp, 0x68, 0x08, 0x0F); /* (0x28 & 0x0F) = 0x08 */ + ViaCrtcMask(hwp, 0x95, 0x20, 0x70); /* (0x28 & 0x70) = 0x20 */ /* {CR92,0,3},{CR95,0,2} : 160/4 = 0x28 */ - ViaCrtcMask(hwp, 0x92, 0x00, 0x08); - ViaCrtcMask(hwp, 0x95, 0x01, 0x07); + ViaCrtcMask(hwp, 0x92, 0x08, 0x08); /* (0x28 & 0x0F) = 0x08 */ + ViaCrtcMask(hwp, 0x95, 0x02, 0x07); /* ((0x28 & 0x70) >> 4)) = 0x02 */ /* {CR94,0,6} : 320/4 = 0x50 */ if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32)) ViaCrtcMask(hwp, 0x94, 0x08, 0x7F); |