diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2009-07-01 11:13:07 +0900 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-07-04 12:56:32 -0700 |
commit | febe04de3be4bf66f9339d8847db2806d99fd164 (patch) | |
tree | e1143d42fc562326196b3eeead563c70449dc019 /arch/x86/boot/video-bios.c | |
parent | 22a26e6663008e1fc4d1467aaff7e775124bce31 (diff) |
x86: fix usage of bios intcall()
Some intcall() misuses the input biosregs as output in
cf06de7b9cdd3efee7a59dced1977b3c21d43732
This fixes the problem vga=ask boot option doesn't show enough modes.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
LKML-Reference: <20090701021307.GA3127@localhost.localdomain>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/boot/video-bios.c')
-rw-r--r-- | arch/x86/boot/video-bios.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/boot/video-bios.c b/arch/x86/boot/video-bios.c index d660be49236..49e0c18833e 100644 --- a/arch/x86/boot/video-bios.c +++ b/arch/x86/boot/video-bios.c @@ -37,14 +37,13 @@ static int set_bios_mode(u8 mode) ireg.al = mode; /* AH=0x00 Set Video Mode */ intcall(0x10, &ireg, NULL); - ireg.ah = 0x0f; /* Get Current Video Mode */ intcall(0x10, &ireg, &oreg); do_restore = 1; /* Assume video contents were lost */ /* Not all BIOSes are clean with the top bit */ - new_mode = ireg.al & 0x7f; + new_mode = oreg.al & 0x7f; if (new_mode == mode) return 0; /* Mode change OK */ |