This is a rebased version of Marc-Andre's patches, I'll put my r-b on them but I thought it would be nice to have others have a look. The only difference are I added a patch on the end, and the interface version is now 4 instead of 3. I've also tested it works against an cirrus fbdev packed 24bpp X server.