# SPDX-License-Identifier: GPL-2.0-only

menu "Drivers for system framebuffers"
	depends on DRM

config DRM_SYSFB_HELPER
	tristate
	depends on DRM

config DRM_EFIDRM
	tristate "EFI framebuffer driver"
	depends on DRM && MMU && EFI && (!SYSFB_SIMPLEFB || COMPILE_TEST)
	select APERTURE_HELPERS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	select DRM_SYSFB_HELPER
	select SYSFB
	help
	  DRM driver for EFI framebuffers.

	  This driver assumes that the display hardware has been initialized
	  by the firmware or bootloader before the kernel boots. Scanout
	  buffer, size, and display format must be provided via EFI interfaces.

config DRM_OFDRM
	tristate "Open Firmware display driver"
	depends on DRM && MMU && OF && (PPC || COMPILE_TEST)
	select APERTURE_HELPERS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	select DRM_SYSFB_HELPER
	help
	  DRM driver for Open Firmware framebuffers.

	  This driver assumes that the display hardware has been initialized
	  by the Open Firmware before the kernel boots. Scanout buffer, size,
	  and display format must be provided via device tree.

config DRM_SIMPLEDRM
	tristate "Simple framebuffer driver"
	depends on DRM && MMU
	select APERTURE_HELPERS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	select DRM_SYSFB_HELPER
	help
	  DRM driver for simple platform-provided framebuffers.

	  This driver assumes that the display hardware has been initialized
	  by the firmware or bootloader before the kernel boots. Scanout
	  buffer, size, and display format must be provided via device tree,
	  UEFI, VESA, etc.

	  On x86 BIOS or UEFI systems, you should also select SYSFB_SIMPLEFB
	  to use UEFI and VESA framebuffers.

config DRM_VESADRM
	tristate "VESA framebuffer driver"
	depends on DRM && MMU && X86 && (!SYSFB_SIMPLEFB || COMPILE_TEST)
	select APERTURE_HELPERS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	select DRM_SYSFB_HELPER
	select SYSFB
	help
	  DRM driver for VESA framebuffers.

	  This driver assumes that the display hardware has been initialized
	  by the firmware or bootloader before the kernel boots. Scanout
	  buffer, size, and display format must be provided via VBE interfaces.

endmenu
