# 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_CMDLINE
	bool

config VIDEO_NOMODESET
	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/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

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

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

endif


endmenu
