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

From: Arvind Sankar
Date: Thu Mar 19 2020 - 22:01:26 EST


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.

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