Starting with XFree86 3.1.1, the XF86_SVGA server contains rudimentary support for the CT65545, a video chipset common in high end laptops. There are several problems with the driver: this document aims to help you get an X server up at least to 640x480x256 resolution, and maybe better.
This document was written based on the experience of running XFree86 on a NEC Versa P laptop with an 800x600 active matrix LCD. It seems that the behaviour of the CT65545 depends in part on the particular machine: as such, these observations may not apply to other machines. I also have more information on Linux and the NEC Versa.
Interested parties should also check out Ken Raeburn's page on the ct65xxx: he knows more about technical details than I do, and is coordinating a hacking effort. And there's another page about Linux and X on notebooks that contains useful docs, more technical.
Feel free to look at my XF86Config, but it's better if you don't copy it - use it for a guide. Mine has some odd stuff in it.
DISCLAIMER: XFree86 makes it possible to hurt your hardware with software: in particular, you could potentially damage the LCD, the chipset, or an external monitor. The author of this document has no responsibility for any damage you might inflict on your computer. Be careful.
Note that the commercial XInside server supports the CT65545 better: in particular, it can program the dot clock up to the full 65MHz.
Modeline "640x480" 28.3 640 640 640 640 480 480 480 480If you prefer to do it right, this mode line seems to sync roughly correctly on a normal monitor as well:
Modeline "640x480" 28.3 640 664 760 800 480 491 493 525
Things get a bit more interesting if you try to use an LCD that's bigger than 640x480. On my NEC Versa P, I found that I could go up to 704x600 with no trouble, and if I ran a server at 800x600 it also worked, but I had to turn the LCD off and on once after the server started (via Fn-F3 or by closing the cover). Weird, but it works.
ModeLine "800x600" 28.3 800 816 856 920 600 600 601 618
It's possible to drive the CT65545 to resolutions greater than 800x600 when the LCD is turned off. Program the horizontal resolution in increments of 16, and you can get pretty far: I've run 880x680, 1024x600, etc. None of these modes are particularly usable, though: most aren't square, and they flicker pretty badly. 1024x768 fails entirely. From what I've seen it seems that you just have to have a 65MHz clock or better to do 1024x768, which would explain these problems.
Sometimes, some other program will set up the CT65545 in a state so that XFree86 will then find a 65MHz dot clock. For instance, the Accelerated X demo will do this for you, and there might be some way to exit Windows and boot Unix, leaving the dotclock programmed. If that happens to you, then you can use 1024x768 mode at a 65MHz dot clock with this mode line:
ModeLine "1024x768" 65 1024 1064 1208 1344 768 771 777 806 -hsync -vsyncAgain, this requires a 65MHz dot clock, which XFree86 itself cannot generate. Here's the opportunity for a good video programmer to make him or herself at least moderately famous.