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

menu "Graphics support"

config APERTURE_HELPERS
	bool
	help
	  Support tracking and hand-over of aperture ownership. Required
	  by graphics drivers for firmware-provided framebuffers.

config SCREEN_INFO
	bool
	default n

config STI_CORE
	bool
	depends on PARISC
	help
	  STI refers to the HP "Standard Text Interface" which is a set of
	  BIOS routines contained in a ROM chip in HP PA-RISC based machines.

config VIDEO
	bool
	default n

source "drivers/auxdisplay/Kconfig"

if HAS_IOMEM

config HAVE_FB_ATMEL
	bool

source "drivers/char/agp/Kconfig"

source "drivers/gpu/vga/Kconfig"

source "drivers/gpu/Kconfig"
source "drivers/gpu/host1x/Kconfig"
source "drivers/gpu/ipu-v3/Kconfig"
source "drivers/gpu/nova-core/Kconfig"

source "drivers/gpu/drm/Kconfig"

menu "Frame buffer Devices"
source "drivers/video/fbdev/Kconfig"
endmenu

source "drivers/video/backlight/Kconfig"

config VGASTATE
       tristate
       default n

config VIDEOMODE_HELPERS
	bool

config HDMI
	bool

endif # HAS_IOMEM

config FIRMWARE_EDID
	bool "Enable firmware EDID"
	depends on EFI_GENERIC_STUB || X86
	help
	  This enables access to the EDID transferred from the firmware.
	  On EFI systems, the EDID comes from the same device as the
	  primary GOP. On x86 with BIOS, it comes from the VESA BIOS.
	  DRM display drivers will be able to export the information
	  to userspace.

	  Also enable this if DDC/I2C transfers do not work for your driver
	  and if you are using nvidiafb, i810fb or savagefb.

	  In general, choosing Y for this option is safe.  If you
	  experience extremely long delays while booting before you get
	  something on your display, try setting this to N.  Matrox cards in
	  combination with certain motherboards and monitors are known to
	  suffer from this problem.

if VT
	source "drivers/video/console/Kconfig"
endif

if FB_CORE || SGI_NEWPORT_CONSOLE
	source "drivers/video/logo/Kconfig"

endif

source "drivers/gpu/trace/Kconfig"

endmenu
