diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2006-01-14 22:15:28 -0800 |
---|---|---|
committer | Chris Wright <chrisw@sous-sol.org> | 2006-01-14 22:15:28 -0800 |
commit | 2d7fc97cea8a45158bc6428a3f99782e41e6b5c3 (patch) | |
tree | 194c7a72a9eb7d6ee784a99a2d9373b19e327ecc | |
parent | a2a1d0e361eda14153c26854230d92f77d77da44 (diff) |
[PATCH] vgacon: fix doublescan mode
When doublescan mode is in use, scanlines must be doubled.
Thanks to Jason Dravet <dravet@hotmail.com> for reporting and testing.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-rw-r--r-- | drivers/video/console/vgacon.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index 167de397e4b..f4e1c4b4191 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c @@ -503,10 +503,16 @@ static int vgacon_doresize(struct vc_data *c, { unsigned long flags; unsigned int scanlines = height * c->vc_font.height; - u8 scanlines_lo, r7, vsync_end, mode; + u8 scanlines_lo, r7, vsync_end, mode, max_scan; spin_lock_irqsave(&vga_lock, flags); + outb_p(VGA_CRTC_MAX_SCAN, vga_video_port_reg); + max_scan = inb_p(vga_video_port_val); + + if (max_scan & 0x80) + scanlines <<= 1; + outb_p(VGA_CRTC_MODE, vga_video_port_reg); mode = inb_p(vga_video_port_val); |