From: Simon Glass Date: Thu, 1 Jan 2015 23:18:04 +0000 (-0700) Subject: x86: Tidy up VESA mode numbers X-Git-Tag: v2015.04-rc1~195^2~25 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f4a6f0aed0be1f941aa786924c2fff0c01fbf91b;p=u-boot x86: Tidy up VESA mode numbers There are some bits which should be ignored when displaying the mode number. Make sure that they are not included in the mode that is displayed. Signed-off-by: Simon Glass --- diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c index 42853489fb..1d75cfc263 100644 --- a/arch/x86/lib/bios.c +++ b/arch/x86/lib/bios.c @@ -207,12 +207,14 @@ static u8 vbe_get_mode_info(struct vbe_mode_info *mi) static u8 vbe_set_mode(struct vbe_mode_info *mi) { - debug("VBE: Setting VESA mode %#04x\n", mi->video_mode); + int video_mode = mi->video_mode; + + debug("VBE: Setting VESA mode %#04x\n", video_mode); /* request linear framebuffer mode */ - mi->video_mode |= (1 << 14); + video_mode |= (1 << 14); /* don't clear the framebuffer, we do that later */ - mi->video_mode |= (1 << 15); - realmode_interrupt(0x10, VESA_SET_MODE, mi->video_mode, + video_mode |= (1 << 15); + realmode_interrupt(0x10, VESA_SET_MODE, video_mode, 0x0000, 0x0000, 0x0000, 0x0000); return 0; @@ -236,6 +238,7 @@ static void vbe_set_graphics(int vesa_mode, struct vbe_mode_info *mode_info) return; } + mode_info->video_mode &= 0x3ff; vbe_set_mode(mode_info); }