516 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			516 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0-only
 | |
| #
 | |
| # Drm device configuration
 | |
| #
 | |
| # This driver provides support for the
 | |
| # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
 | |
| #
 | |
| menuconfig DRM
 | |
| 	tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
 | |
| 	depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
 | |
| 	select DRM_PANEL_ORIENTATION_QUIRKS
 | |
| 	select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
 | |
| 	select FB_CORE if DRM_FBDEV_EMULATION
 | |
| 	select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
 | |
| 	select HDMI
 | |
| 	select I2C
 | |
| 	select DMA_SHARED_BUFFER
 | |
| 	select SYNC_FILE
 | |
| # gallium uses SYS_kcmp for os_same_file_description() to de-duplicate
 | |
| # device and dmabuf fd. Let's make sure that is available for our userspace.
 | |
| 	select KCMP
 | |
| 	select VIDEO
 | |
| 	help
 | |
| 	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
 | |
| 	  introduced in XFree86 4.0. If you say Y here, you need to select
 | |
| 	  the module that's right for your graphics card from the list below.
 | |
| 	  These modules provide support for synchronization, security, and
 | |
| 	  DMA transfers. Please see <http://dri.sourceforge.net/> for more
 | |
| 	  details.  You should also select and configure AGP
 | |
| 	  (/dev/agpgart) support if it is available for your platform.
 | |
| 
 | |
| if DRM
 | |
| 
 | |
| config DRM_MIPI_DBI
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	select DRM_KMS_HELPER
 | |
| 
 | |
| config DRM_MIPI_DSI
 | |
| 	bool
 | |
| 	depends on DRM
 | |
| 
 | |
| config DRM_DEBUG_MM
 | |
| 	bool "Insert extra checks and debug info into the DRM range managers"
 | |
| 	default n
 | |
| 	depends on DRM
 | |
| 	depends on STACKTRACE_SUPPORT
 | |
| 	select STACKDEPOT
 | |
| 	help
 | |
| 	  Enable allocation tracking of memory manager and leak detection on
 | |
| 	  shutdown.
 | |
| 
 | |
| 	  Recommended for driver developers only.
 | |
| 
 | |
| 	  If in doubt, say "N".
 | |
| 
 | |
| config DRM_USE_DYNAMIC_DEBUG
 | |
| 	bool "use dynamic debug to implement drm.debug"
 | |
| 	default n
 | |
| 	depends on BROKEN
 | |
| 	depends on DRM
 | |
| 	depends on DYNAMIC_DEBUG || DYNAMIC_DEBUG_CORE
 | |
| 	depends on JUMP_LABEL
 | |
| 	help
 | |
| 	  Use dynamic-debug to avoid drm_debug_enabled() runtime overheads.
 | |
| 	  Due to callsite counts in DRM drivers (~4k in amdgpu) and 56
 | |
| 	  bytes per callsite, the .data costs can be substantial, and
 | |
| 	  are therefore configurable.
 | |
| 
 | |
| config DRM_KUNIT_TEST_HELPERS
 | |
| 	tristate
 | |
| 	depends on DRM && KUNIT
 | |
| 	select DRM_KMS_HELPER
 | |
| 	help
 | |
| 	  KUnit Helpers for KMS drivers.
 | |
| 
 | |
| config DRM_KUNIT_TEST
 | |
| 	tristate "KUnit tests for DRM" if !KUNIT_ALL_TESTS
 | |
| 	depends on DRM && KUNIT && MMU
 | |
| 	select DRM_BUDDY
 | |
| 	select DRM_DISPLAY_DP_HELPER
 | |
| 	select DRM_DISPLAY_HDMI_STATE_HELPER
 | |
| 	select DRM_DISPLAY_HELPER
 | |
| 	select DRM_EXEC
 | |
| 	select DRM_EXPORT_FOR_TESTS if m
 | |
| 	select DRM_GEM_SHMEM_HELPER
 | |
| 	select DRM_KUNIT_TEST_HELPERS
 | |
| 	select DRM_LIB_RANDOM
 | |
| 	select PRIME_NUMBERS
 | |
| 	default KUNIT_ALL_TESTS
 | |
| 	help
 | |
| 	  This builds unit tests for DRM. This option is not useful for
 | |
| 	  distributions or general kernels, but only for kernel
 | |
| 	  developers working on DRM and associated drivers.
 | |
| 
 | |
| 	  For more information on KUnit and unit tests in general,
 | |
| 	  please refer to the KUnit documentation in
 | |
| 	  Documentation/dev-tools/kunit/.
 | |
| 
 | |
| 	  If in doubt, say "N".
 | |
| 
 | |
| config DRM_KMS_HELPER
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	help
 | |
| 	  CRTC helpers for KMS drivers.
 | |
| 
 | |
| config DRM_PANIC
 | |
| 	bool "Display a user-friendly message when a kernel panic occurs"
 | |
| 	depends on DRM
 | |
| 	select FONT_SUPPORT
 | |
| 	help
 | |
| 	  Enable a drm panic handler, which will display a user-friendly message
 | |
| 	  when a kernel panic occurs. It's useful when using a user-space
 | |
| 	  console instead of fbcon.
 | |
| 	  It will only work if your graphic driver supports this feature.
 | |
| 	  To support Hi-DPI Display, you can enable bigger fonts like
 | |
| 	  FONT_TER16x32
 | |
| 
 | |
| config DRM_PANIC_FOREGROUND_COLOR
 | |
| 	hex "Drm panic screen foreground color, in RGB"
 | |
| 	depends on DRM_PANIC
 | |
| 	default 0xffffff
 | |
| 
 | |
| config DRM_PANIC_BACKGROUND_COLOR
 | |
| 	hex "Drm panic screen background color, in RGB"
 | |
| 	depends on DRM_PANIC
 | |
| 	default 0x000000
 | |
| 
 | |
| config DRM_PANIC_DEBUG
 | |
| 	bool "Add a debug fs entry to trigger drm_panic"
 | |
| 	depends on DRM_PANIC && DEBUG_FS
 | |
| 	help
 | |
| 	  Add dri/[device]/drm_panic_plane_x in the kernel debugfs, to force the
 | |
| 	  panic handler to write the panic message to this plane scanout buffer.
 | |
| 	  This is unsafe and should not be enabled on a production build.
 | |
| 	  If in doubt, say "N".
 | |
| 
 | |
| config DRM_PANIC_SCREEN
 | |
| 	string "Panic screen formatter"
 | |
| 	default "user"
 | |
| 	depends on DRM_PANIC
 | |
| 	help
 | |
| 	  This option enable to choose what will be displayed when a kernel
 | |
| 	  panic occurs. You can choose between "user", a short message telling
 | |
| 	  the user to reboot the system, or "kmsg" which will display the last
 | |
| 	  lines of kmsg.
 | |
| 	  This can also be overridden by drm.panic_screen=xxxx kernel parameter
 | |
| 	  or by writing to /sys/module/drm/parameters/panic_screen sysfs entry
 | |
| 	  Default is "user"
 | |
| 
 | |
| config DRM_PANIC_SCREEN_QR_CODE
 | |
| 	bool "Add a panic screen with a QR code"
 | |
| 	depends on DRM_PANIC && RUST
 | |
| 	select ZLIB_DEFLATE
 | |
| 	help
 | |
| 	  This option adds a QR code generator, and a panic screen with a QR
 | |
| 	  code. The QR code will contain the last lines of kmsg and other debug
 | |
| 	  information. This should be easier for the user to report a kernel
 | |
| 	  panic, with all debug information available.
 | |
| 	  To use this panic screen, also set DRM_PANIC_SCREEN to "qr_code"
 | |
| 
 | |
| config DRM_PANIC_SCREEN_QR_CODE_URL
 | |
| 	string "Base URL of the QR code in the panic screen"
 | |
| 	depends on DRM_PANIC_SCREEN_QR_CODE
 | |
| 	help
 | |
| 	  This option sets the base URL to report the kernel panic. If it's set
 | |
| 	  the QR code will contain the URL and the kmsg compressed with zlib as
 | |
| 	  a URL parameter. If it's empty, the QR code will contain the kmsg as
 | |
| 	  uncompressed text only.
 | |
| 	  There is a demo code in javascript, to decode and uncompress the kmsg
 | |
| 	  data from the URL parameter at https://github.com/kdj0c/panic_report
 | |
| 
 | |
| config DRM_PANIC_SCREEN_QR_VERSION
 | |
| 	int "Maximum version (size) of the QR code."
 | |
| 	depends on DRM_PANIC_SCREEN_QR_CODE
 | |
| 	default 40
 | |
| 	help
 | |
| 	  This option limits the version (or size) of the QR code. QR code
 | |
| 	  version ranges from Version 1 (21x21) to Version 40 (177x177).
 | |
| 	  Smaller QR code are easier to read, but will contain less debugging
 | |
| 	  data. Default is 40.
 | |
| 
 | |
| config DRM_DEBUG_DP_MST_TOPOLOGY_REFS
 | |
|         bool "Enable refcount backtrace history in the DP MST helpers"
 | |
| 	depends on STACKTRACE_SUPPORT
 | |
|         select STACKDEPOT
 | |
|         depends on DRM_KMS_HELPER
 | |
|         depends on DEBUG_KERNEL
 | |
|         depends on EXPERT
 | |
|         help
 | |
|           Enables debug tracing for topology refs in DRM's DP MST helpers. A
 | |
|           history of each topology reference/dereference will be printed to the
 | |
|           kernel log once a port or branch device's topology refcount reaches 0.
 | |
| 
 | |
|           This has the potential to use a lot of memory and print some very
 | |
|           large kernel messages. If in doubt, say "N".
 | |
| 
 | |
| config DRM_DEBUG_MODESET_LOCK
 | |
| 	bool "Enable backtrace history for lock contention"
 | |
| 	depends on STACKTRACE_SUPPORT
 | |
| 	depends on DEBUG_KERNEL
 | |
| 	depends on EXPERT
 | |
| 	select STACKDEPOT
 | |
| 	default y if DEBUG_WW_MUTEX_SLOWPATH
 | |
| 	help
 | |
| 	  Enable debug tracing of failures to gracefully handle drm modeset lock
 | |
| 	  contention. A history of each drm modeset lock path hitting -EDEADLK
 | |
| 	  will be saved until gracefully handled, and the backtrace will be
 | |
| 	  printed when attempting to lock a contended lock.
 | |
| 
 | |
| 	  If in doubt, say "N".
 | |
| 
 | |
| config DRM_FBDEV_EMULATION
 | |
| 	bool "Enable legacy fbdev support for your modesetting driver"
 | |
| 	depends on DRM
 | |
| 	select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
 | |
| 	default FB
 | |
| 	help
 | |
| 	  Choose this option if you have a need for the legacy fbdev
 | |
| 	  support. Note that this support also provides the linux console
 | |
| 	  support on top of your modesetting driver.
 | |
| 
 | |
| 	  If in doubt, say "Y".
 | |
| 
 | |
| config DRM_FBDEV_OVERALLOC
 | |
| 	int "Overallocation of the fbdev buffer"
 | |
| 	depends on DRM_FBDEV_EMULATION
 | |
| 	default 100
 | |
| 	help
 | |
| 	  Defines the fbdev buffer overallocation in percent. Default
 | |
| 	  is 100. Typical values for double buffering will be 200,
 | |
| 	  triple buffering 300.
 | |
| 
 | |
| config DRM_FBDEV_LEAK_PHYS_SMEM
 | |
| 	bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)"
 | |
| 	depends on DRM_FBDEV_EMULATION && EXPERT
 | |
| 	default n
 | |
| 	help
 | |
| 	  In order to keep user-space compatibility, we want in certain
 | |
| 	  use-cases to keep leaking the fbdev physical address to the
 | |
| 	  user-space program handling the fbdev buffer.
 | |
| 	  This affects, not only, Amlogic, Allwinner or Rockchip devices
 | |
| 	  with ARM Mali GPUs using an userspace Blob.
 | |
| 	  This option is not supported by upstream developers and should be
 | |
| 	  removed as soon as possible and be considered as a broken and
 | |
| 	  legacy behaviour from a modern fbdev device driver.
 | |
| 
 | |
| 	  Please send any bug reports when using this to your proprietary
 | |
| 	  software vendor that requires this.
 | |
| 
 | |
| 	  If in doubt, say "N" or spread the word to your closed source
 | |
| 	  library vendor.
 | |
| 
 | |
| config DRM_LOAD_EDID_FIRMWARE
 | |
| 	bool "Allow to specify an EDID data set instead of probing for it"
 | |
| 	depends on DRM
 | |
| 	help
 | |
| 	  Say Y here, if you want to use EDID data to be loaded from the
 | |
| 	  /lib/firmware directory or one of the provided built-in
 | |
| 	  data sets. This may be necessary, if the graphics adapter or
 | |
| 	  monitor are unable to provide appropriate EDID data. Since this
 | |
| 	  feature is provided as a workaround for broken hardware, the
 | |
| 	  default case is N. Details and instructions how to build your own
 | |
| 	  EDID data are given in Documentation/admin-guide/edid.rst.
 | |
| 
 | |
| source "drivers/gpu/drm/display/Kconfig"
 | |
| 
 | |
| config DRM_TTM
 | |
| 	tristate
 | |
| 	depends on DRM && MMU
 | |
| 	help
 | |
| 	  GPU memory management subsystem for devices with multiple
 | |
| 	  GPU memory types. Will be enabled automatically if a device driver
 | |
| 	  uses it.
 | |
| 
 | |
| config DRM_TTM_KUNIT_TEST
 | |
|         tristate "KUnit tests for TTM" if !KUNIT_ALL_TESTS
 | |
|         default n
 | |
|         depends on DRM && KUNIT && MMU && (UML || COMPILE_TEST)
 | |
|         select DRM_TTM
 | |
|         select DRM_BUDDY
 | |
|         select DRM_EXPORT_FOR_TESTS if m
 | |
|         select DRM_KUNIT_TEST_HELPERS
 | |
|         default KUNIT_ALL_TESTS
 | |
|         help
 | |
|           Enables unit tests for TTM, a GPU memory manager subsystem used
 | |
|           to manage memory buffers. This option is mostly useful for kernel
 | |
|           developers. It depends on (UML || COMPILE_TEST) since no other driver
 | |
|           which uses TTM can be loaded while running the tests.
 | |
| 
 | |
|           If in doubt, say "N".
 | |
| 
 | |
| config DRM_EXEC
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	help
 | |
| 	  Execution context for command submissions
 | |
| 
 | |
| config DRM_GPUVM
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	select DRM_EXEC
 | |
| 	help
 | |
| 	  GPU-VM representation providing helpers to manage a GPUs virtual
 | |
| 	  address space
 | |
| 
 | |
| config DRM_BUDDY
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	help
 | |
| 	  A page based buddy allocator
 | |
| 
 | |
| config DRM_VRAM_HELPER
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	help
 | |
| 	  Helpers for VRAM memory management
 | |
| 
 | |
| config DRM_TTM_HELPER
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	select DRM_TTM
 | |
| 	help
 | |
| 	  Helpers for ttm-based gem objects
 | |
| 
 | |
| config DRM_GEM_DMA_HELPER
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 	select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
 | |
| 	help
 | |
| 	  Choose this if you need the GEM DMA helper functions
 | |
| 
 | |
| config DRM_GEM_SHMEM_HELPER
 | |
| 	tristate
 | |
| 	depends on DRM && MMU
 | |
| 	help
 | |
| 	  Choose this if you need the GEM shmem helper functions
 | |
| 
 | |
| config DRM_SUBALLOC_HELPER
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 
 | |
| config DRM_SCHED
 | |
| 	tristate
 | |
| 	depends on DRM
 | |
| 
 | |
| source "drivers/gpu/drm/i2c/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/arm/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/radeon/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/amd/amdgpu/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/nouveau/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/i915/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/xe/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/kmb/Kconfig"
 | |
| 
 | |
| config DRM_VGEM
 | |
| 	tristate "Virtual GEM provider"
 | |
| 	depends on DRM && MMU
 | |
| 	select DRM_GEM_SHMEM_HELPER
 | |
| 	help
 | |
| 	  Choose this option to get a virtual graphics memory manager,
 | |
| 	  as used by Mesa's software renderer for enhanced performance.
 | |
| 	  If M is selected the module will be called vgem.
 | |
| 
 | |
| source "drivers/gpu/drm/vkms/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/exynos/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/rockchip/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/vmwgfx/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/gma500/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/udl/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/ast/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/mgag200/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/armada/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/renesas/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/sun4i/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/omapdrm/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/tilcdc/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/qxl/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/virtio/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/msm/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/fsl-dcu/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/tegra/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/stm/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/panel/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/bridge/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/sti/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/imx/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/ingenic/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/v3d/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/vc4/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/loongson/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/etnaviv/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/hisilicon/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/logicvc/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/mediatek/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/mxsfb/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/meson/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/tiny/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/pl111/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/tve200/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/xen/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/vboxvideo/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/lima/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/panfrost/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/panthor/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/aspeed/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/mcde/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/tidss/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/xlnx/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/gud/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/solomon/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/sprd/Kconfig"
 | |
| 
 | |
| source "drivers/gpu/drm/imagination/Kconfig"
 | |
| 
 | |
| config DRM_HYPERV
 | |
| 	tristate "DRM Support for Hyper-V synthetic video device"
 | |
| 	depends on DRM && PCI && MMU && HYPERV
 | |
| 	select DRM_KMS_HELPER
 | |
| 	select DRM_GEM_SHMEM_HELPER
 | |
| 	help
 | |
| 	 This is a KMS driver for Hyper-V synthetic video device. Choose this
 | |
| 	 option if you would like to enable drm driver for Hyper-V virtual
 | |
| 	 machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so
 | |
| 	 that DRM driver is used by default.
 | |
| 
 | |
| 	 If M is selected the module will be called hyperv_drm.
 | |
| 
 | |
| config DRM_EXPORT_FOR_TESTS
 | |
| 	bool
 | |
| 
 | |
| config DRM_LIB_RANDOM
 | |
| 	bool
 | |
| 	default n
 | |
| 
 | |
| config DRM_PRIVACY_SCREEN
 | |
| 	bool
 | |
| 	default n
 | |
| 
 | |
| config DRM_WERROR
 | |
| 	bool "Compile the drm subsystem with warnings as errors"
 | |
| 	depends on DRM && EXPERT
 | |
| 	depends on !WERROR
 | |
| 	default n
 | |
| 	help
 | |
| 	  A kernel build should not cause any compiler warnings, and this
 | |
| 	  enables the '-Werror' flag to enforce that rule in the drm subsystem.
 | |
| 
 | |
| 	  The drm subsystem enables more warnings than the kernel default, so
 | |
| 	  this config option is disabled by default.
 | |
| 
 | |
| 	  If in doubt, say N.
 | |
| 
 | |
| endif
 | |
| 
 | |
| # Separate option because drm_panel_orientation_quirks.c is shared with fbdev
 | |
| config DRM_PANEL_ORIENTATION_QUIRKS
 | |
| 	tristate
 |