S3 High Speed text font support in vgacon.c [patch 2.1.112]

Jan Kratochvil (short@ucw.cz)
Thu, 30 Jul 1998 00:54:58 +0200


--sm4nu43k4a2Rpi4c
Content-Type: text/plain; charset=us-ascii

Hi all

S3:
VGA graphics chip used in most of the current PCs

S3 High Speed text font mode:
Special organization of font in VGA's memory so that the chip can
display at higher dot clocks without memory bandwith starvation. Chip has
special mode in which when set, all (_ALL_) the accesses to video RAM are
translated so that the font loading is made compatible with the traditional
font organization.

Current solution:
SVGATextMode which is used to setup this mode of operation and also
acts as wrapper around immediate and mandatory setfont.

Disadvantages of the current solution:
* You must load some disk font when setting better video mode
(no chance of leaving the old BIOS-related font).
* No elegant method of loading of custom fonts.

This patch's solution:
Kernel checks for S3 card during boot and by internal getfont/setfont
pair sets up the high speed mode with leaving the current font unchanged.
Additional wrapper is installed around kernel setfont so that normal userland
setfont(8) utility is working. SVGATextMode is no longer maintainer of the
high speed text font features and all the modes are running in high speed mode.
S3 detection code shamelessly stolen from XFree86 (UNTESTED - no non-S3 card
available around!).

SVGATextMode configuration:
Comment out all the HSText support from /etc/TextConfig, particulary:
Option "S3_HSText"`
Option "LoadFont"
From SVGATextMode point of view it will look like if no HSText mode
is being used. This is correct.

Diagnostics:
See the kernel messages (dmesg) at the start of the boot process
(one of the several first lines) and look for the "vgacon: .... HSText .... ".
Correct line should read: "vgacon: S3 HSText enabled."

Compatibility:
Used for at least one year (previous patch version) without any problems
detected.

Version:
Patch destined for clean Linus's 2.1.112. Additional
#define VGA_CAN_DO_64K (standard) in vgacon.c recommended although it has no
relationship with this patch.

Happy hacking,
Jan "Lace" Kratochvil

P.S.: Sorry, I'm not on the linux-kernel list so give me Cc during replies, please.
The load was TOO high and time tight.

--sm4nu43k4a2Rpi4c
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="s3hstext-2.1.112.diff.gz"

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
P+/P/VnJIQAA

--sm4nu43k4a2Rpi4c--

-
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