From: Patrick Rudolph Date: Mon, 29 May 2017 17:25:10 +0000 (+0200) Subject: SeaVGABios/cbvga: Advertise correct pixel format X-Git-Tag: rel-1.11.0~30 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=4b42cc4;p=seabios.git SeaVGABios/cbvga: Advertise correct pixel format Accumulate the pixel format's bits instead relying on coreboot's bits_per_pixel, which says nothing about the active pixel format. Allows VBE to correctly advertise XRGB8 and BGRX8 framebuffer formats, commonly used by coreboot. Fixes at least Windows Bootloader and gfxboot. Signed-off-by: Patrick Rudolph --- diff --git a/vgasrc/cbvga.c b/vgasrc/cbvga.c index b8216a9..39ffdbb 100644 --- a/vgasrc/cbvga.c +++ b/vgasrc/cbvga.c @@ -1,6 +1,7 @@ // Simple framebuffer vgabios for use with coreboot native vga init. // // Copyright (C) 2014 Kevin O'Connor +// Copyright (C) 2017 Patrick Rudolph // // This file may be distributed under the terms of the GNU LGPLv3 license. @@ -164,7 +165,8 @@ cbvga_setup(void) } u64 addr = GET_FARVAR(0, cbfb->physical_address); - u8 bpp = GET_FARVAR(0, cbfb->bits_per_pixel); + u8 bpp = cbfb->blue_mask_size + cbfb->green_mask_size + + cbfb->red_mask_size + cbfb->reserved_mask_size; u32 xlines = GET_FARVAR(0, cbfb->x_resolution); u32 ylines = GET_FARVAR(0, cbfb->y_resolution); u32 linelength = GET_FARVAR(0, cbfb->bytes_per_line);