From: Knut P. <Knu...@t-...> - 2005-10-23 07:01:03
|
Hi Tony, >>What would it take to get intelfb mode switching working with non-CRT >>displays? >> >Documentation. Or you can try googling for vesafb-tng. > > Something like that should be possible even without documentation from vendor xyz. 0: google, read X sources, etc. 1: Extend a private version of vesafb and xyz-fb with a function that dumps all known hardware registers. Call it at the end of the xyz-fb_set_par() routine and while loading vesafb. 2. Boot several times (without loading X) and save a vesafb register dump for every valid vesa mode. 3. Compare the register dumps and try to be intelligent ;-) Most probably you will find that only a few registers differ. Some will change with differnt color depths, some will change with different vertical and horizontal resolutions. Also a clock divider needs to be discovered. 4. Verify your assumptions and release a mode switching xyz-fb driver. It might also be a good idea to write a little dumpreg program for DOS and/or Windows. If there is e.g. a utility program for DOS that allows you to change the refresh rate, it should be quite easy to identify the clock divider registers. ypan and ywrap scrolling does help a lot to increase speed. Try to identify as many bits of the crt start address value as possible by instrumenting vesafb. Simply call your register dump function at the end of vesafb_pan_display() for several times and have a close look at the bits changed during scrolling. Don´t start displaying those register dumps immediately, that way you obviously would lock your pc. cu, knut PS and ONLY for the brave: Write a little DOS program that single steps the BIOS, saves all IO to the vga register range to a buffer and displays it after completion of the mode switch. If the BIOS tries to prevent single stepping in real mode, switch to vm86. It´s even possible (and easier to implement than a vm86 monitor) to use a memory manager like qemm386 and a few lines of assembly code to map a writable copy of the video bios image at the place of the original bios if necessary. |