From 0c2b3b1d95cf35d1a08c5dab6579acbb1f20e2c1 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 30 May 2018 16:19:02 +0200 Subject: cbvga_list_modes: don't list current mode twice In case we've already added the framebuffer video mode to the list do not add number 0x140. Signed-off-by: Gerd Hoffmann --- vgasrc/cbvga.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'vgasrc') diff --git a/vgasrc/cbvga.c b/vgasrc/cbvga.c index fb686200..3f16bee1 100644 --- a/vgasrc/cbvga.c +++ b/vgasrc/cbvga.c @@ -104,6 +104,8 @@ struct vgamode_s *cbvga_find_mode(int mode) void cbvga_list_modes(u16 seg, u16 *dest, u16 *last) { + int seen = 0; + if (GET_GLOBAL(CBmode) != 0x3) { /* Advertise additional SVGA modes for Microsoft NTLDR graphical mode. * Microsoft NTLDR: @@ -119,9 +121,11 @@ cbvga_list_modes(u16 seg, u16 *dest, u16 *last) continue; SET_FARVAR(seg, *dest, mode); dest++; + if (GET_GLOBAL(CBmode) == mode) + seen = 1; } } - if (dest < last) { + if (dest < last && !seen) { SET_FARVAR(seg, *dest, GET_GLOBAL(CBmode)); dest++; } -- cgit