On Thu, Jun 26, 2003 at 09:35:52AM -0500, Oliver Wong wrote:
>Hello all,
>
>I recently purchased a Dell D400, which suffers from a BIOS only
>allocating <1MB of legacy video memory (stolen memory) to the integrated
>graphics... I believe the Dell 500m and other 855GM laptops suffer from
>this as well. The BIOS also does not provide the appropriate mechanisms
>for the current drivers to change that.
>
>Researching, I found that the Dell C400 and other similar laptops had
>this problem too (with an older chipset), but a work around was written
>(by Abraham vd Merwe?).  Does anyone know if a similar work around could
>be applied to the 855GM's? Or is the chipset radically different so that
>that fix will not work?

That method didn't work on the test hardware I had access to when
adding the 855GM support.  The driver does implement a new method
for informing the video BIOS about additional memory allocations,
but I haven't seen any evidence of production hardware implementing
it yet.

You could try the attached patch, which should enable the old 830M
method for all platforms, and let me know if it works.  It's possible
that Dell has the old method implemented in their video BIOS.

If it doesn't work, you'll need to follow it up with Dell.

David
-- 
David Dawes
Founder/committer/developer                     The XFree86 Project
www.XFree86.org/~dawes
Index: i830_driver.c
===================================================================
RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v
retrieving revision 1.27
diff -u -r1.27 i830_driver.c
--- i830_driver.c       14 Feb 2003 17:12:42 -0000      1.27
+++ i830_driver.c       17 Jun 2003 20:11:55 -0000
@@ -1039,7 +1039,7 @@
       return TRUE;
 #endif
 
-   if (IS_I830(pI830) || IS_845G(pI830)) {
+   if (1 || IS_I830(pI830) || IS_845G(pI830)) {
       pI830->useSWF1 = TRUE;
       pI830->saveSWF1 = INREG(SWF1) & 0x0f;
 
@@ -1084,7 +1084,7 @@
    }
 #endif
 
-   if ((IS_I830(pI830) || IS_845G(pI830)) && pI830->useSWF1) {
+   if ((1 || IS_I830(pI830) || IS_845G(pI830)) && pI830->useSWF1) {
       swf1 = INREG(SWF1);
       swf1 &= ~0x0f;
       swf1 |= (pI830->saveSWF1 & 0x0f);
@@ -1111,7 +1111,7 @@
    }
 #endif
 
-   if ((IS_I830(pI830) || IS_845G(pI830)) && pI830->useSWF1) {
+   if ((1 || IS_I830(pI830) || IS_845G(pI830)) && pI830->useSWF1) {
       CARD32 newSWF1;
 
       /* Need MMIO access here. */

Reply via email to