Hi, On 3/20/20 3:00 AM, Arvind Sankar wrote:
This series is against tip:efi/core. Patches 1-9 are small cleanups and refactoring of the code in libstub/gop.c. The rest of the patches add the ability to use a command-line option to switch the gop's display mode. The options supported are: video=efifb:mode=n Choose a specific mode number video=efifb:<xres>x<yres>[-(rgb|bgr|<bpp>)] Specify mode by resolution and optionally color depth video=efifb:auto Let the EFI stub choose the highest resolution mode available. The mode-setting additions increase code size of gop.o by about 3k on x86-64 with EFI_MIXED enabled.
Thank you for adding me to the Cc. I will add these to my personal tree, which I test semi-regular on various hardware. I've only looked at patches 10 - 14 and a quick glance these look good to me. I was worried that you would maybe always enumerate the modes or some such, but I see that you have structured things in such a way that if the new kernel cmdline options are not used no extra EFI calls are made, which make me very happy! This way we do not need to worry about this patch-set tripping up buggy firmware (which is quite likely to be out there somewhere) by making new, previously unused, EFI calls. Regards, Hans
Changes in v2 (HT lkp@xxxxxxxxx): - Fix __efistub_global attribute to be after the variable. (NB: bunch of other places should ideally be fixed, those I guess don't matter as they are scalars?) - Silence -Wmaybe-uninitialized warning in set_mode function. Arvind Sankar (14): efi/gop: Remove redundant current_fb_base efi/gop: Move check for framebuffer before con_out efi/gop: Get mode information outside the loop efi/gop: Factor out locating the gop into a function efi/gop: Slightly re-arrange logic of find_gop efi/gop: Move variable declarations into loop block efi/gop: Use helper macros for populating lfb_base efi/gop: Use helper macros for find_bits efi/gop: Remove unreachable code from setup_pixel_info efi/gop: Add prototypes for query_mode and set_mode efi/gop: Allow specifying mode number on command line efi/gop: Allow specifying mode by <xres>x<yres> efi/gop: Allow specifying depth as well as resolution efi/gop: Allow automatically choosing the best mode Documentation/fb/efifb.rst | 33 +- arch/x86/include/asm/efi.h | 4 + .../firmware/efi/libstub/efi-stub-helper.c | 3 + drivers/firmware/efi/libstub/efistub.h | 8 +- drivers/firmware/efi/libstub/gop.c | 489 ++++++++++++++---- 5 files changed, 428 insertions(+), 109 deletions(-) base-commit: d5528d5e91041e68e8eab9792ce627705a0ed273