summary refs log tree commit diff
path: root/arch/i386/boot/video-vga.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-24 16:10:56 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-24 16:10:56 -0700
commit37a3cc99d5048df62bb201c0b45a51ba94497e45 (patch)
treec129d5d04fc4eab5c8bc39fbf2203121be4d6d52 /arch/i386/boot/video-vga.c
parent6e106b0d97e79f1abb60cc49a53af760950c3384 (diff)
parent71351b98b9be6a867aa00276d67716c0728cfff7 (diff)
downloadlinux-37a3cc99d5048df62bb201c0b45a51ba94497e45.tar.gz
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup:
  [x86 setup] Make sure AH=00h when setting a video mode
  [x86 setup] Volatilize asm() statements
Diffstat (limited to 'arch/i386/boot/video-vga.c')
-rw-r--r--arch/i386/boot/video-vga.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/i386/boot/video-vga.c b/arch/i386/boot/video-vga.c
index 700d09a9c9b3..aef02f9ec0c1 100644
--- a/arch/i386/boot/video-vga.c
+++ b/arch/i386/boot/video-vga.c
@@ -47,16 +47,16 @@ static u8 vga_set_basic_mode(void)
 
 #ifdef CONFIG_VIDEO_400_HACK
 	if (adapter >= ADAPTER_VGA) {
-		asm(INT10
-		    : : "a" (0x1202), "b" (0x0030)
-		    : "ecx", "edx", "esi", "edi");
+		asm volatile(INT10
+			     : : "a" (0x1202), "b" (0x0030)
+			     : "ecx", "edx", "esi", "edi");
 	}
 #endif
 
 	ax = 0x0f00;
-	asm(INT10
-	    : "+a" (ax)
-	    : : "ebx", "ecx", "edx", "esi", "edi");
+	asm volatile(INT10
+		     : "+a" (ax)
+		     : : "ebx", "ecx", "edx", "esi", "edi");
 
 	mode = (u8)ax;
 
@@ -73,9 +73,10 @@ static u8 vga_set_basic_mode(void)
 		mode = 3;
 
 	/* Set the mode */
+	ax = mode;
 	asm volatile(INT10
-		     : : "a" (mode)
-		     : "ebx", "ecx", "edx", "esi", "edi");
+		     : "+a" (ax)
+		     : : "ebx", "ecx", "edx", "esi", "edi");
 	do_restore = 1;
 	return mode;
 }