New console diff for 2.1.110

Martin Mares (mj@albireo.ucw.cz)
Tue, 21 Jul 1998 16:52:12 +0200


Hello, world!\n

I've prepared a new console diff against 2.1.110. It's available for
download on ftp://atrey.karlin.mff.cuni.cz/pub/local/mj/linux/patches/l-con110.gz.

If you are experiencing some problems with the console in 2.1.110, please
try this patch and let me know whether did it help or not.

Summary of changes:
~~~~~~~~~~~~~~~~~~~

Martin Mares [mm]
Geert Uytterhoeven [ge]
Jakub Jelinek [jj]
Eddie C. Dost [ed]
David S. Miller [dm]

console:
o Fixed the `set cursor shape' ESC sequence, so that it doesn't interfere
with vt100 ID reporting. [mm]
o When scrolling down, use scr_memmovew instead of line-by-line scr_memcpyw. [mm]
o Hopefully fixed all attribute problems: [mm]
- Calculation of attributes and region invert (for selection) can be
overriden by low-level drivers.
- Mouse pointer XOR mask is now present in the vc_data structure instead
of being hard-wired.
- Introduced update_region for redrawing of screen parts, converted
update_screen to call this.
o Corrected font handling. A bit complex since semantics of original font
ioctl's was very baroque and we want to keep compatibility at least until 2.3. [mm]
- All low-levels drivers now define a con_font_op hook instead of con_set_font
and con_get_font which gets passed struct console_font_ops containing
command (get, set, set default etc.), font size and several flags.
- Generic con_font_op() in console.c handles all copying of fonts between
kernel and user space plus some basic checks.
- PIO_FONT, PIO_FONTX, GIO_FONT, GIO_FONTX, PIO_FONTRESET now just create
the font ops structure and call con_font_op(). I hope original semantics
of all these ioctl's is followed as closely as possible now.
- Introduced new ioctl KDFONTOP which just passes the font op structure
and allows arbitrary font sizes and flag combinations.
- Most of 512-character mode is now implemented in vgacon, we now have
a per-console mask for font selection attribute.
- Selection interface converted to use the new per-console font flag. As
a nice side effect, size of selection code decreased a bit.
o "Bring console to front" control sequence now uses set_console() [switch
using console_bh] instead of calling update_screen directly. Fixes problems
with switching to X and also some potential races. [mm]
o "Unblank screen" control sequence now just calls poke_blanked_console(). [mm]
o Hopefully fixed EGA blanking problems (con_blank now returns whether to set
origin or not and vgacon set_origin refuses to use vram for packet buffer
if blanked by everything else than palette blanking). [mm]
o vc_resize bugfix by Bernd Schmidt (no longer clobbers memory).
o Added back test of tty->stopped in do_con_write, so scroll lock in raw
mode works again. [mm]
o Maximum font size increased to 32K. This should be sufficient until fbcon
learns how to use 512 character fonts. [mm]
o When switching consoles, remember to hide the cursor. [mm]
o Removed few calls to set_cursor() from control character handling routines
since it gets set correctly when leaving do_con_write(). [mm]
o Reworked software cursor patch from Pavel Machek. With the new console code
it's now amazingly simple, with almost zero overhead and works with all
low-level drivers. [mm]

vt_kern.h:
o Removed few unused fields.

vt_buffer.h:
o Implemented scr_memmovew. Defaults to generic memmove when there is no VGA. [mm]

vgacon:
o Better scrollback (when called to scroll back/front and only few lines
are remaining till end of videoram, step a bit more to show them). [mm]
o Fast scrolling now handles both directions and also scrolling by more
lines at once. [mm]
o Now has its own attribute hooks calculating the right set of attributes
for monochrome adapters. [mm]
o Fixed the vgacon_deinit hack, so that taking over VGA console works now. [mm]
o Trident cursor bug fix and cursor shape setting patch from Pavel Machek.

vc_screen:
o Fixed refreshing of screen on vcsa writes. Now calls update_region instead
of redrawing whole screen and it also doesn't try to redraw invisible
screens. [mm]

macmodes:
o Add some content to this empty file. [ge]

fbcon:
o Add a nibbletab for little endian machines. (untested) [ge]
o Fix the colormap (partly by Petr Vandrovec) [ge]
o When you use scrollback and return to the original screen position,
don't forget to turn the cursor on. [mm]
o cfb2: Add support for little-endian (untested). [ge]
o Remove `dirty trick to avoid setcmap calling kmalloc which isn't initialized
yet'. [ge]
o Add a clear_margins() routine to struct display_switch. It clears the unused
right and bottom margin of the screen if the screen{width,height} is not
divisible by the font{width,height}, so it doesn't contain garbage. If this
routine is defined, it is called by fbcon on VC switch.
Currently it's implemented in cfb8 only (and in derived low level drivers:
aty8, cyber8, retz3_8, trio8). [ge]
o Replace hardcoded 8 by p->fontwidth. Now the Sun 12x22 font works. [ge]
o If a frame buffer device is compiled as a module, it's OK if the low level
drivers it relies on are modules too.
o Make sparc32 compile with the fbcon & promcon [jj]
o Fixed a bug during take_over_console, which caused the old content to be
painted with a random color until scrolled up on direct color displays [jj]
o Fix sbusfb known_card detection - now it really finds out all cards [jj]
o Extended sbusfb_mmap handling, so that size can be some multiple of fb_size
or 0 [jj]
o cgsixfb finished. More sbus drivers should follow soon. [jj]

atyfb:
o Hardware cursor support for the ATI. Only enabled for VT. [ge]
o Lots of other fixes [ed, dm, ge]
o On Sparc do the right thing in the presence of a serial console. [dm]
o Enable hardware cursor on GT chips (RAGE). [ge]
o Do not always allocate colormaps of size 1<<bpp. With bpp == 16,
this still worked, with bpp == 32 you didn't see the bug on a 32
bit machine, but with bpp == 24 kmalloc() complained :-) [ge]
o Fix blanking (let's hope so). [ge]
o Fix blanking (off by one Geert). [ed]
o Make cursor_timer a per cursor property. [ed]

tgafb:
o Another one that uses SCROLL_YREDRAW now. [ge]

S3triofb:
o Readd SCROLL_YREDRAW in the unaccelerated case (lost by accident). [ge]

fonts:
o Cleaned up font handling. All fonts are now compiled only when they are
needed, font descriptions are in corresponding font_*.c files instead
of master table in fonts.c. [mm]
o Make fonts configurable, add some compile time check if the user compiled
in some usable font, use get_user in con_font_op. That stuff needs to be
fixed, as e.g. wide fonts may take up much more than 8K. Also, I think
it would be useful to have KD_FONT_FLAG_NOPAD, that will turn off padding
each character to 32bytes in height in font storage. [jj]
o Replaced piles of ifdef's in font selection logic by simple
priority mechanism. Each font is now assigned a priority which
is overriden based on architecture and number of scan lines. [mm]
o mv pearl_8x8.c font_pearl_8x8.c (to be more consistent, and to suit the
Makefile :-) [ge]
o Made the font compile time check take into account which drivers support
width != 8 fonts [jj]

## Acorn console updates from Russell King (includes a bugfix to palette
handling code).

## Removed the old PowerMac console driver because it no longer works. [ge]

Have a nice fortnight

-- 
Martin `MJ' Mares   <mj@ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"EMACS == Escape, Meta, Alt, Control, Shift"

- 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