diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2005-11-22 00:32:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-22 12:13:43 -0500 |
commit | 5ef897c71a8985b62b7ec320a37376daaad364d0 (patch) | |
tree | e3980355964a3fdb6d36e8fdcaf6bb18ea7c31fe | |
parent | b4627dea032ab1f6e472fcf030e28f22ea971f9b (diff) |
[PATCH] vgacon: Fix usage of stale height value on vc initialization
Reported by: Wayne E. Harlan
"[1.] One line summary of the problem:
When the kernel option "vga=1" is used, additional tty's (alt+control+Fx
with x=2,3,4,5, etc) do not provide the full 50 lines of output. The first
one does have 50 lines, however.
[2.] Full description of the problem/report:
These addtitional tty's show only 39 lines plus the top pixel of the 40-th
line. The remaining lines are black and not shown. Kernel version
2.6.13.4 does not show this problem."
This bug is caused by using a stale font height value on vgacon_init.
Booting with vga=1 gives an 80x50 screen with an 8x8 font. Somewhere
during the initialization, the font was changed to 8x9 and the first
vc was correctly resized to 80x44. However, the rest of the vc's were
not allocated yet, and when they were subsequently initialized, they
still used a font height of 8 (instead of 9) causing the mentioned bug.
Fix by saving the new font height to vga_video_font_height.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/video/console/vgacon.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index 274f90543e32..167de397e4b4 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c | |||
@@ -966,6 +966,7 @@ static int vgacon_adjust_height(struct vc_data *vc, unsigned fontheight) | |||
966 | outb_p(0x12, vga_video_port_reg); /* Vertical display limit */ | 966 | outb_p(0x12, vga_video_port_reg); /* Vertical display limit */ |
967 | outb_p(vde, vga_video_port_val); | 967 | outb_p(vde, vga_video_port_val); |
968 | spin_unlock_irq(&vga_lock); | 968 | spin_unlock_irq(&vga_lock); |
969 | vga_video_font_height = fontheight; | ||
969 | 970 | ||
970 | for (i = 0; i < MAX_NR_CONSOLES; i++) { | 971 | for (i = 0; i < MAX_NR_CONSOLES; i++) { |
971 | struct vc_data *c = vc_cons[i].d; | 972 | struct vc_data *c = vc_cons[i].d; |