]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add vgacon doublescan mode fix, fwd from akpm
authorChris Wright <chrisw@sous-sol.org>
Tue, 10 Jan 2006 01:45:46 +0000 (17:45 -0800)
committerChris Wright <chrisw@sous-sol.org>
Tue, 10 Jan 2006 01:45:46 +0000 (17:45 -0800)
queue/series
queue/vgacon-fix-doublescan-mode.patch [new file with mode: 0644]

index 7fc1377c018d8d784c15e8ac426f78673004ea32..9eb5f1a236c5ad554e0e585ee4a39dc0163a1740 100644 (file)
@@ -3,3 +3,4 @@ ufs-inode-i_sem-is-not-released-in-error-path.patch
 skge-handle-out-of-memory-on-ring-changes.patch
 fix-ATY-video-on-sunblade.patch
 ppc32-re-add-embed_configc-to-ml300-ep405.patch
+vgacon-fix-doublescan-mode.patch
diff --git a/queue/vgacon-fix-doublescan-mode.patch b/queue/vgacon-fix-doublescan-mode.patch
new file mode 100644 (file)
index 0000000..7af0a23
--- /dev/null
@@ -0,0 +1,42 @@
+From stable-bounces@linux.kernel.org  Sun Jan  8 01:06:28 2006
+Message-Id: <200601080902.k0892jZm015005@shell0.pdx.osdl.net>
+To: torvalds@osdl.org
+From: akpm@osdl.org
+Cc: samuel.thibault@ens-lyon.org, dravet@hotmail.com, stable@kernel.org
+Subject: [PATCH] vgacon: fix doublescan mode
+
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+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 |    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);