Matrox Millenium accelerated framebuffer device

Petr Vandrovec Ing. VTEI (VANDROVE@vc.cvut.cz)
Thu, 23 Jul 1998 15:48:23 MET-1


Hello,
I know that there is accelerated KGI Matrox device driver and
FBCon->KGI, but it looks to me like that almost no-one (together with me)
is going that way for 2.1/2.2.
For these non-KGI aware peoples/kernels I've created accelerated
Matrox Millenium/Mystique driver. It uses hardware bitblts to scroll
regions and set-start-videopage to scroll whole screen, so it is very
fast (there is almost no difference between character fbvga and matroxfb
(but there IS difference between vgacon and matroxfb, unfortunately))
and supports scrollback if videomode takes less than 1MB of videodata.
Patch is available at ftp://platan.vc.cvut.cz/pub/linux/2.1.110p2/matrox.
That patch should went cleanly to 2.1.110p2 - final 2.1.110, it cannot
be used with 2.1.111p1 because of transition from CONFIG_FB_CFB* to
FBCON_HAS_CFB*. Driver has following bugs:
1) usage is almost same as vesafb, you have to boot kernel with vga=ask
and choose resolution, you cannot change resolution without reboot
(I was inspired by Windows3.11 :-) )
2) do not use this without matrox millenium(II)/mystique or together with
vesafb
3) it has problems with XFree FBDev (works wit XF86_SVGA). XFree starts
fine, but after switch to another console and back, XF68_FBDev does
think that screen is 1024 bytes instead of 1280 bytes wide (I'm using
1280x1024x8bpp to testing) fbset says that all is OK
4) it supports only PAN, not WRAP
5) It uses only 2MB of memory because of I have only 2MB videocard. Docs
says about some problems (memory interleaving) for >2MB videocard.
I need someone to test it on more than 2MB RAM (you have to edit
end of matroxfb.c to enable more than 2MB RAM).
6) It was tested only on Matrox Millenium I (and very briefly, an old
version, on Mystique).
7) You may see garbage on the bottom of screen in 800x600. I hope that
Geert find some reasonable solution (600 mod 16 != 0, unfortunately).
8) There is pink (instead of black) penguin in 8bpp. It does irritate me,
but it is there only once during boot so it is very last on my list.
9) more and more, if you find something wrong (or patches, changing
videoresolution on the fly), mail to vandrove@vc.cvut.cz
Best regards,
Petr Vandrovec
vandrove@vc.cvut.cz

P.S.: Questions to Geert or somebody who knows how fb architecture works:
1) Matrox Millenium(I/II)/Mystique cannot have accelerated 800 bytes per
line, it must be multiple of 64, so for example 832 bytes. It is not problem
for 16/32 bpp, but it is problem for 8bpp. So if user requests 800x600,
should I refuse it or should I round it up to first possible resolution?
(BTW, my BIOS (Millenium I) uses logical line length 960 pixels for
resolutions wide 800 pixels). And how does console code handle horizontal
virtual screen?
2) Are fbcon_* functions called with lock_kernel() or under another
mutex? It looks to me like that at least echoing characters from keyboard
(putc) is not mutexed with screen scrolling (because of sometime
under heavy scrolling (without acceleration) I'm getting spaces (skipped
positions) instead of echoed characters).
Thanks,
Petr Vandrovec
vandrove@vc.cvut.cz

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html