Re: [PATCH v2 00/14] efi/gop: Refactoring + mode-setting feature

From: Ard Biesheuvel
Date: Wed Mar 25 2020 - 12:41:58 EST


On Fri, 20 Mar 2020 at 03:00, Arvind Sankar <nivedita@xxxxxxxxxxxx> 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.
>
> 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.
>

These look good to me. The only question I have is whether it would be
possible to use the existing next_arg() and parse_option_str()
functions to replace some of the open code parsing that goes on in
patches 11 - 14.


> 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
> --
> 2.24.1
>