]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] vgacon: fix doublescan mode
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Sun, 15 Jan 2006 06:15:28 +0000 (22:15 -0800)
committerChris Wright <chrisw@sous-sol.org>
Sun, 15 Jan 2006 06:15:28 +0000 (22:15 -0800)
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>
drivers/video/console/vgacon.c

index 167de397e4b430def9bb9b470153842a8d5803dc..f4e1c4b4191e7b49c044b06780df946ad6862081 100644 (file)
@@ -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);