# 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/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 X86
	help
	  This enables access to the EDID transferred from the firmware.
	  On x86, this is 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
