|
From: Petr V. <VAN...@vc...> - 2002-07-18 09:43:18
|
On 18 Jul 02 at 9:51, Sven Luther wrote:
>
> Ok, that said, i suppose ours are the only boards with such problems,
> but since there is so much taken out of the drivers in your new setup
> and put in a common place, would it not solve this problem if there were
> an additional function which driver could provide (or fill in NULL if
> there was no proble), for retrieving this data, which fbcon can write
> back later on ?
Unfortunately there is no such hook. Fortunately call sequence is:
your drivers's init
--> look and init devices
--> call register_framebuffer
--> VGACON reads contents of VGA buffer
--> call to fbdev setvar
--> upper layer restores screen
...
With matroxfb I moved all initialization which changes framebuffer layout
to the setvar call, and so VGACON finds hardware in VGA, and not MMIO,
state.
You can look at drivers/char/console.c: take_over_console calls
save_screen, which in turn calls con_save_screen method of vgacon.
So you can try directly overwritting vgacon's savescreen procedure
extern struct consw vga_con;
vga_con.con_save_screen = myOwnSaveScreen;
if you find that your fbdev is primary VGA device. Of course it is
not tested, and I cannot recommend doing that...
Petr
|