]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
efi: Support EDID information
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 26 Nov 2025 16:03:25 +0000 (17:03 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 16 Dec 2025 13:40:51 +0000 (14:40 +0100)
commitc5a8f13f1e476c90f4bc184a58751d3e7ff88f2b
tree6edda3c2b318611b441e3d55cff50af90636c4ff
parent4fcae635887195d6ecc427d503d7671ca46bc11b
efi: Support EDID information

In the EFI config table, rename LINUX_EFI_SCREEN_INFO_TABLE_GUID to
LINUX_EFI_PRIMARY_DISPLAY_TABLE_GUID. Read sysfb_primary_display from
the entry. In addition to the screen_info, the entry now also contains
EDID information.

In libstub, replace struct screen_info with struct sysfb_display_info
from the kernel's sysfb_primary_display and rename functions
accordingly.  Transfer it to the runtime kernel using the kernel's
global state or the LINUX_EFI_PRIMARY_DISPLAY_TABLE_GUID config-table
entry.

With CONFIG_FIRMWARE_EDID=y, libstub now transfers the GOP device's EDID
information to the kernel. If CONFIG_FIRMWARE_EDID=n, EDID information
is disabled. Make the Kconfig symbol CONFIG_FIRMWARE_EDID available with
EFI. Setting the value to 'n' disables EDID support.

Also rename screen_info.c to primary_display.c and adapt the contained
comment according to the changes.

Link: https://lore.kernel.org/all/20251126160854.553077-8-tzimmermann@suse.de/
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
[ardb: depend on EFI_GENERIC_STUB not EFI, fix conflicts after dropping
       the preceding patch from the series]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
12 files changed:
arch/loongarch/kernel/efi.c
drivers/firmware/efi/efi-init.c
drivers/firmware/efi/efi.c
drivers/firmware/efi/libstub/Makefile
drivers/firmware/efi/libstub/efi-stub-entry.c
drivers/firmware/efi/libstub/efi-stub.c
drivers/firmware/efi/libstub/efistub.h
drivers/firmware/efi/libstub/primary_display.c [new file with mode: 0644]
drivers/firmware/efi/libstub/screen_info.c [deleted file]
drivers/firmware/efi/libstub/zboot.c
drivers/video/Kconfig
include/linux/efi.h