Messages in this thread | | | Date | Fri, 17 Jul 1998 15:44:55 +0200 | From | Martin Mares <> | Subject | Console patches |
| |
Hello, world!\n
I've just sent Linus a huge pile of console diffs to Linus. Those of you who are eager to test them, look at ftp://atrey.karlin.mff.cuni.cz/pub/linux/patches/l-con90.gz.
Here are lots of other bugfixes to the console. There are still some more bugs listed in my TODO list, but most of them are in fbcon and other non-vga parts, so the basic PC console seems to be almost code-frozen now :)
Have a nice day Martin
Summary of changes: ~~~~~~~~~~~~~~~~~~~
[mm] Martin Mares [as] Andreas Schwab [jj] Jakub Jelinek [ed] Eddie C. Dost [ge] Geert Uytterhoeven [pm] Paul Mackerras
console: Before trying to switch consoles, clear selection. [mm]
Removed extraneous graphics mode test in con_flush_chars() (set_cursor() does it itself). [mm]
When calling do_blank_screen(1) (which means we're entering graphics mode), save screen contents, call sw->con_blank(-1) and set new origin. This is needed to prepare the screen for graphics apps on the PC. [mm]
When loading palette in set_palette, call sw->con_set_palette with consw of current console, not with conswitchp. [mm]
Now distinguishing between IS_FG (currcons is fg_console) and IS_VISIBLE (currcons is a visible console). Changed few places to use IS_VISIBLE. [mm]
Added simple multi-head support. For each display we have new variable containing a pointer to currently visible console and struct vc_data contains a new field pointing to that pointer. IS_VISIBLE now just compares *vc_data->display_fg == vc_data, IS_FG remains as it was. Unless the low-level drivers set it otherwise, it gets set automatically to point to master_display_fg. [mm]
Also rewrote update_screen to handle switching between displays and to call set_origin only if appropriate. My vgacon+fbcon works well now even with graphics, only blanking need some more tweaking (just now only the fg_console display gets blanked). [mm]
con_write: Hide cursor _after_ verify_area succeeds. [mm]
consw->con_blank now gets called with vc_data of fg_console (I need it for reloading of palette when unblanking vgacon). [mm]
Move declarations of console_getmode etc. from vt_kern.h to vc_ioctl.h, since they are only use for PMAC_CONSOLE and Xpmac compatibility. [pm]
compatcon: Removed as it doesn't work and it's no longer used. [mm]
vgacon: Implemented deinit function which just sets display origin to top of video ram. [mm]
Moved take_over_console to console.c and make it possible to call it for taking over a specified range of consoles and optionally not setting the new console driver as default. This function will be used in all secondary console drivers (mdacon etc.) and driver modules. [mm]
fbcon+vesafb and vgacon are now able to co-exist (i.e., the kernel initializes either vgacon xor vesafb depending on video mode chosen during boot). If dummycon is enabled (which happens always is we have vesafb compiled in) and vgacon doesn't find working videocard in text mode, it switches to dummycon instead, so that the console subsystem gets initialized and fbcon can take over later. [mm]
Fixed problems with switches to KD_GRAPHICS. We now remember we're in gfx mode and reject in-vram origin setting attempts as well as attempts to scroll by changing the origin. [mm]
Added full support for blanking to vgacon: [mm]
o On VGA we blank by setting the palette to all black. Scrollback contents survives blanking. o On other cards we just clear the videoram and restore it from the screen buffer when unblanking. Scrollback dies. (The old code did lots of tricks to preserve scrollback on EGA, but I think it isn't worth the effort.) o Full VESA blanking supported as well (copied from vesa_blank.c in old kernels).
For now vgacon seems to be almost complete except for cursor shape bug workarounds, monochrome attributes and few other speedups.
fbcon: When toggling the cursor in interrupt, make sure fg_console is a real frame buffer display before trying to call its revc routine. [mm]
Cursor fixes [as]
Handle arbitrary fontwidth & fontheights. Each display_switch provides a bitmask, which fontwidths it supports. E.g. creatorfb & cgsixfb support fontwidth 1-16 inclusive, fbcon-cfb8 fontwidths 4,8,12,16, fbcon-mac fontwidths 1-8, most others just 8. [jj]
fb drivers: fbgen is not compiled in by default since only skeletonfb uses it now. [mm]
atafb panic fixes [as]
Put the MacOS video mode database in a separate file (macmodes.c) so it an be shared by all drivers. [gu]
chipsfb; Added [pm]
chipsfb: Add support for 16 bpp on the PowerBook 3400 (Mike Lockwood)
atyfb,offb,S3triofb: Speed up the console by using SCROLL_YREDRAW if there's no hardware acceleration. [gu]
sysrq: Make it compile without CONFIG_VT (still useful to compile sysrq code without CONFIG_VT if you have a serial console). [mm]
vesafb: Added declaration of vesafb_sw, so it compiles. [mm]
Shuffled setting of display->var, so it even works. Grr, two hours of debugging until I found this one. [mm]
Cleaned up processing of display parameters. The original code was inspired by skeletonfb/fbgen and contained lots of do-nothing and one-line functions. [mm]
promcon: Implemented [jj,ed]
promfb: Killed [ed]
- 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
| |