summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuc Verhaegen <libv@skynet.be>2006-01-27 18:11:28 +0000
committerLuc Verhaegen <libv@skynet.be>2006-01-27 18:11:28 +0000
commita141b4906b9057827878c149bed308828b6f263e (patch)
treee1a5fe62af6be2ba5357b833f8dc5abfbf65da28
parentbc8836a56e6affcdf95f662352629d4a82b12c48 (diff)
[devel-ViaVideoRamGetFromRamController_P4M800_exception] The P4M800 comes
with a VT7205, but it has a different setup entirely compared to KM400. We need to handle this like the VT3118, VT3344 and VT3157 should one day be handled.
-rw-r--r--src/via_driver.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/via_driver.c b/src/via_driver.c
index 8e21090..6f3c57f 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -687,8 +687,17 @@ ViaVideoRamGetFromRamController(ScrnInfoPtr pScrn)
VIAFUNC(pScrn->scrnIndex);
switch (pVia->Chipset) {
- case VT3122:
case VT7205:
+ /* check host bridge pci device id as this might be P4M800. */
+ if (pciReadWord(0x00000000, 0x02) != 0x3205) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "%s: Still unable to probe"
+ " VideoRam Size directly on P4M800.\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "%s: Please contact libv@skynet.be ASAP.\n");
+ break;
+ }
+ /* KM400 so fall through */
+ case VT3122:
/* poke hostbridge: 0x1106:0x3123; 0:0:0.0 */
tmp = pciReadByte(0x00000000, 0xE1);
pScrn->videoRam = (1 << ((tmp & 0x70) >> 4)) * 1024;