[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ghostie screen



On Thursday 03 January 2002 10:39 am, Russell Hires wrote:
> Darn good question. I've got a Voodoo3 card, running 2.4.17 (though the
> kernel version doesn't seem to make a difference, since it's happened with
> 2.4.16 and 2.2.18-patched)...how would I provide this information? I'm
> running an up-to-date version of woody, so I guess it's XFree86 4.1.x...but
> the specific drivers...hmmm....

There are definitely some tdfx problems in 4.1 (espescially in my setup, with 
Xinerama dualhead). I thought VT-switching was OK when I ran 4.1, but maybe 
not. I've forgotten :-). I've currently got a 4.1.99.x (ie, pre-4.2.0) and it 
seems to be much better... in your case, I'd say wait for 4.2, it shouldn't 
be too long now.

I've also got a patch from Ani Joshi that fixes the kernel tdfxfb to make 
textmode work on it (may be a part of why VT-changning works, though probably 
not). It's still nice to have the console work on it. He says he's gonna 
merge this patch into the kernel eventually, but afaik it hasn't happened yet.

It's very small, so I'll attach it here

-- 
Kevin Alan Puetz
(515)572-0927
puetzk@iastate.edu
--- tdfxfb.c.orig	Sat Oct 13 12:09:46 2001
+++ tdfxfb.c	Sat Oct 13 12:58:23 2001
@@ -762,7 +762,11 @@
    tdfx_outl(SRCXY,     0);
    tdfx_outl(DSTXY,     xx | (yy << 16));
    tdfx_outl(COMMAND_2D, COMMAND_2D_H2S_BITBLT | (ROP_COPY << 24));
+#if defined(__BIG_ENDIAN)
+   tdfx_outl(SRCFORMAT, 0x400000 | BIT(20));
+#else
    tdfx_outl(SRCFORMAT, 0x400000);
+#endif
    tdfx_outl(DSTFORMAT, fmt);
    tdfx_outl(DSTSIZE,   fontwidth(p) | (fontheight(p) << 16));
    i=fontheight(p);
@@ -820,7 +824,11 @@
    tdfx_outl(COMMAND_3D, COMMAND_3D_NOP);
    tdfx_outl(COLORFORE, fgx);
    tdfx_outl(COLORBACK, bgx);
+#if defined(__BIG_ENDIAN)
+   tdfx_outl(SRCFORMAT, 0x400000 | BIT(20));
+#else
    tdfx_outl(SRCFORMAT, 0x400000);
+#endif
    tdfx_outl(DSTFORMAT, fmt);
    tdfx_outl(DSTSIZE, w | (h << 16));
    tdfx_outl(SRCXY,     0);
@@ -2343,7 +2351,7 @@
    tdfxfb_createcursorshape(p);
    xline = ~((1 << (32 - fb_info.cursor.w)) - 1);
 
-#ifdef __LITTLE_ENDIAN
+#if defined(__BIG_ENDIAN)
    xline = swab32(xline);
 #endif
 

Reply to: