[PATCH 0/2] allow the sysfb support to be used in non-x86 arches

From: Javier Martinez Canillas
Date: Fri May 21 2021 - 15:29:51 EST


The x86 architecture platform has a Generic System Framebuffers (sysfb)
support, that register a system frambuffer platform devices. It either
registers a "simple-framebuffer" for the simple{fb,drm} drivers or legacy
VGA/EFI FB devices for the vgafb/efifb drivers.

Besides this, the EFI initialization code used by other architectures such
as aarch64 and riscv, has similar logic but only register an EFI FB device.

The sysfb is generic enough to be reused by other architectures and can be
moved out of the arch/x86 directory to drivers/firmware, allowing the EFI
logic used by non-x86 architectures to be folded into sysfb as well.

Patch #1 in this series do the former while patch #2 the latter. This has
been tested on x86_64 and aarch64 machines using the efifb, simplefb and
simpledrm drivers. But more testing will be highly appreciated, to make
sure that no regressions are being introduced by these changes.

Since this touches both arch/{x86,arm,arm64,riscv} and drivers/firmware, I
don't know how it should be merged. But I didn't find a way to split these.

Best regards,
Javier


Javier Martinez Canillas (2):
drivers/firmware: move x86 Generic System Framebuffers support
drivers/firmware: consolidate EFI framebuffer setup for all arches

arch/arm/Kconfig | 1 +
arch/arm/include/asm/efi.h | 5 +-
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/efi.h | 5 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/efi.h | 5 +-
arch/x86/Kconfig | 27 +-----
arch/x86/kernel/Makefile | 3 -
drivers/firmware/Kconfig | 30 +++++++
drivers/firmware/Makefile | 2 +
drivers/firmware/efi/Makefile | 2 +
drivers/firmware/efi/efi-init.c | 90 -------------------
.../firmware/efi}/sysfb_efi.c | 79 +++++++++++++++-
{arch/x86/kernel => drivers/firmware}/sysfb.c | 42 +++++----
.../firmware}/sysfb_simplefb.c | 31 ++++---
.../x86/include/asm => include/linux}/sysfb.h | 34 +++----
16 files changed, 182 insertions(+), 176 deletions(-)
rename {arch/x86/kernel => drivers/firmware/efi}/sysfb_efi.c (84%)
rename {arch/x86/kernel => drivers/firmware}/sysfb.c (70%)
rename {arch/x86/kernel => drivers/firmware}/sysfb_simplefb.c (82%)
rename {arch/x86/include/asm => include/linux}/sysfb.h (68%)

--
2.31.1