2006-01-13 03:19:16

by Chris Wright

[permalink] [raw]
Subject: [PATCH 06/17] [PATCH] vgacon: fix doublescan mode

-stable review patch. If anyone has any objections, please let us know.
------------------

When doublescan mode is in use, scanlines must be doubled.

Thanks to Jason Dravet <[email protected]> for reporting and testing.

Signed-off-by: Samuel Thibault <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Chris Wright <[email protected]>
---

drivers/video/console/vgacon.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

--- linux-2.6.15.y.orig/drivers/video/console/vgacon.c
+++ linux-2.6.15.y/drivers/video/console/vgacon.c
@@ -503,10 +503,16 @@ static int vgacon_doresize(struct vc_dat
{
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);


--