summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2008-10-14 11:33:33 -0700
committerEric Anholt <eric@anholt.net>2008-10-14 11:33:33 -0700
commit4dd00681dd0f9fce8dfd4592b46418edbbd2eeb4 (patch)
treea66222bea11b5cc4daa02cc2b11663804c8e4beb
parente7e49bed7e254256f8cc0d4afcdfadc6dadf19e6 (diff)
Fix broken stolen memory counting on G4X.
On the GM45 we were assuming too little stolen memory (mostly harmless, except when it wasn't, until the AGP fix), and on the G45 we were assuming too much stolen memory, which was quite harmful when we touched the page that didn't get mapped. Future stolen memory accounting should use src/reg_dumper/intel_gtt before and after enabling AGP on the chipset to confirm that only the GTT entries not mapped to stolen are replaced, and that all of the unmapped GTT entries are replaced with the constant scratch page.
-rw-r--r--src/i830_driver.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index c1d61f4f..eaf5d27b 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -502,8 +502,8 @@ I830DetectMemory(ScrnInfoPtr pScrn)
range = gtt_size + 4;
/* new 4 series hardware has seperate GTT stolen with GFX stolen */
- if (IS_G4X(pI830))
- range = 0;
+ if (IS_G4X(pI830) || IS_GM45(pI830))
+ range = 4;
if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I9XX(pI830)) {
switch (gmch_ctrl & I855_GMCH_GMS_MASK) {