Commit d391c582 authored by Javier Martinez Canillas's avatar Javier Martinez Canillas Committed by Thomas Zimmermann
Browse files

drivers/firmware: move x86 Generic System Framebuffers support



The x86 architecture has generic support to register a system framebuffer
platform device. It either registers a "simple-framebuffer" if the config
option CONFIG_X86_SYSFB is enabled, or a legacy VGA/VBE/EFI FB device.

But the code is generic enough to be reused by other architectures and can
be moved out of the arch/x86 directory.

This will allow to also support the simple{fb,drm} drivers on non-x86 EFI
platforms, such as aarch64 where these drivers are only supported with DT.

Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Acked-by: default avatarBorislav Petkov <bp@suse.de>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20210625130947.1803678-2-javierm@redhat.com
parent bf44e8ce
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -2806,32 +2806,6 @@ config AMD_NB
	def_bool y
	depends on CPU_SUP_AMD && PCI

config X86_SYSFB
	bool "Mark VGA/VBE/EFI FB as generic system framebuffer"
	help
	  Firmwares often provide initial graphics framebuffers so the BIOS,
	  bootloader or kernel can show basic video-output during boot for
	  user-guidance and debugging. Historically, x86 used the VESA BIOS
	  Extensions and EFI-framebuffers for this, which are mostly limited
	  to x86.
	  This option, if enabled, marks VGA/VBE/EFI framebuffers as generic
	  framebuffers so the new generic system-framebuffer drivers can be
	  used on x86. If the framebuffer is not compatible with the generic
	  modes, it is advertised as fallback platform framebuffer so legacy
	  drivers like efifb, vesafb and uvesafb can pick it up.
	  If this option is not selected, all system framebuffers are always
	  marked as fallback platform framebuffers as usual.

	  Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will
	  not be able to pick up generic system framebuffers if this option
	  is selected. You are highly encouraged to enable simplefb as
	  replacement if you select this option. simplefb can correctly deal
	  with generic system framebuffers. But you should still keep vesafb
	  and others enabled as fallback if a system framebuffer is
	  incompatible with simplefb.

	  If unsure, say Y.

endmenu


+0 −3
Original line number Diff line number Diff line
@@ -135,9 +135,6 @@ obj-$(CONFIG_X86_CHECK_BIOS_CORRUPTION) += check.o
obj-$(CONFIG_SWIOTLB)			+= pci-swiotlb.o
obj-$(CONFIG_OF)			+= devicetree.o
obj-$(CONFIG_UPROBES)			+= uprobes.o
obj-y					+= sysfb.o
obj-$(CONFIG_X86_SYSFB)			+= sysfb_simplefb.o
obj-$(CONFIG_EFI)			+= sysfb_efi.o

obj-$(CONFIG_PERF_EVENTS)		+= perf_regs.o
obj-$(CONFIG_TRACING)			+= tracepoint.o
+32 −0
Original line number Diff line number Diff line
@@ -251,6 +251,38 @@ config QCOM_SCM_DOWNLOAD_MODE_DEFAULT

	  Say Y here to enable "download mode" by default.

config SYSFB
	bool
	default y
	depends on X86 || COMPILE_TEST

config X86_SYSFB
	bool "Mark VGA/VBE/EFI FB as generic system framebuffer"
	depends on SYSFB
	help
	  Firmwares often provide initial graphics framebuffers so the BIOS,
	  bootloader or kernel can show basic video-output during boot for
	  user-guidance and debugging. Historically, x86 used the VESA BIOS
	  Extensions and EFI-framebuffers for this, which are mostly limited
	  to x86.
	  This option, if enabled, marks VGA/VBE/EFI framebuffers as generic
	  framebuffers so the new generic system-framebuffer drivers can be
	  used on x86. If the framebuffer is not compatible with the generic
	  modes, it is advertised as fallback platform framebuffer so legacy
	  drivers like efifb, vesafb and uvesafb can pick it up.
	  If this option is not selected, all system framebuffers are always
	  marked as fallback platform framebuffers as usual.

	  Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will
	  not be able to pick up generic system framebuffers if this option
	  is selected. You are highly encouraged to enable simplefb as
	  replacement if you select this option. simplefb can correctly deal
	  with generic system framebuffers. But you should still keep vesafb
	  and others enabled as fallback if a system framebuffer is
	  incompatible with simplefb.

	  If unsure, say Y.

config TI_SCI_PROTOCOL
	tristate "TI System Control Interface (TISCI) Message Protocol"
	depends on TI_MESSAGE_MANAGER
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o
obj-$(CONFIG_RASPBERRYPI_FIRMWARE) += raspberrypi.o
obj-$(CONFIG_FW_CFG_SYSFS)	+= qemu_fw_cfg.o
obj-$(CONFIG_QCOM_SCM)		+= qcom_scm.o qcom_scm-smc.o qcom_scm-legacy.o
obj-$(CONFIG_SYSFB)		+= sysfb.o
obj-$(CONFIG_X86_SYSFB)		+= sysfb_simplefb.o
obj-$(CONFIG_TI_SCI_PROTOCOL)	+= ti_sci.o
obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
obj-$(CONFIG_TURRIS_MOX_RWTM)	+= turris-mox-rwtm.o
+2 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ obj-$(CONFIG_LOAD_UEFI_KEYS) += mokvar-table.o
fake_map-y				+= fake_mem.o
fake_map-$(CONFIG_X86)			+= x86_fake_mem.o

obj-$(CONFIG_SYSFB)			+= sysfb_efi.o

arm-obj-$(CONFIG_EFI)			:= efi-init.o arm-runtime.o
obj-$(CONFIG_ARM)			+= $(arm-obj-y)
obj-$(CONFIG_ARM64)			+= $(arm-obj-y)
Loading