aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-01-22 12:14:59 -0800
committerH. Peter Anvin <hpa@zytor.com>2010-01-22 12:18:21 -0800
commit2219c1192672effd3d8ad878aba93b543608c9f4 (patch)
tree270ffdd2d4cc0ecfa0ff71ea19c83addae4ca208
parent1da816e5101d61edc8a01e3c76a1b89933a8b863 (diff)
downloadsyslinux-2219c1192672effd3d8ad878aba93b543608c9f4.tar.gz
syslinux-2219c1192672effd3d8ad878aba93b543608c9f4.tar.xz
syslinux-2219c1192672effd3d8ad878aba93b543608c9f4.zip
core: don't reset the video mode when invoking the kernel
Don't reset the video mode when invoking the kernel if we're booting quiet -- it breaks "vga=current" which some distros use for a smooth graphical transition all the way into the kernel. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--core/bootsect.inc6
-rw-r--r--core/runkernel.inc5
2 files changed, 10 insertions, 1 deletions
diff --git a/core/bootsect.inc b/core/bootsect.inc
index 200f00ad..0cf0c460 100644
--- a/core/bootsect.inc
+++ b/core/bootsect.inc
@@ -120,6 +120,12 @@ replace_bootstrap:
; Prepare for shutting down
;
call vgaclearmode
+
+;
+; We jump here when loading a kernel image, so that we don't reset
+; the screen mode in "quiet" mode
+;
+replace_bootstrap_noclearmode:
call cleanup_hardware
;
diff --git a/core/runkernel.inc b/core/runkernel.inc
index 8bfc8b8d..c437d72d 100644
--- a/core/runkernel.inc
+++ b/core/runkernel.inc
@@ -454,7 +454,10 @@ setup_move:
; BX points to the final real mode segment, and will be loaded
; into DS.
- jmp replace_bootstrap
+
+ test byte [QuietBoot],01h ; Don't clear the mode if quiet
+ jz replace_bootstrap
+ jmp replace_bootstrap_noclearmode
run_linux_kernel:
;