xref: /linux/drivers/gpu/drm/Kconfig (revision efb113fc30e7b805f7375d269b93bb4593d11d97)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2c0e09200SDave Airlie#
3c0e09200SDave Airlie# Drm device configuration
4c0e09200SDave Airlie#
5c0e09200SDave Airlie# This driver provides support for the
6c0e09200SDave Airlie# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
7c0e09200SDave Airlie#
8c0e09200SDave Airliemenuconfig DRM
9c0e09200SDave Airlie	tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
1062a0d98aSBenjamin Gaignard	depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
118d70f395SHans de Goede	select DRM_PANEL_ORIENTATION_QUIRKS
1210a85120SThierry Reding	select HDMI
1357a6297eSDave Airlie	select I2C
143248877eSDave Airlie	select DMA_SHARED_BUFFER
1596260142SGustavo Padovan	select SYNC_FILE
16bfe3911aSChris Wilson# gallium uses SYS_kcmp for os_same_file_description() to de-duplicate
17bfe3911aSChris Wilson# device and dmabuf fd. Let's make sure that is available for our userspace.
18bfe3911aSChris Wilson	select KCMP
19a3b6792eSThomas Zimmermann	select VIDEO
20c0e09200SDave Airlie	help
21c0e09200SDave Airlie	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
22c0e09200SDave Airlie	  introduced in XFree86 4.0. If you say Y here, you need to select
23c0e09200SDave Airlie	  the module that's right for your graphics card from the list below.
24c0e09200SDave Airlie	  These modules provide support for synchronization, security, and
25c0e09200SDave Airlie	  DMA transfers. Please see <http://dri.sourceforge.net/> for more
26c0e09200SDave Airlie	  details.  You should also select and configure AGP
27dcdb1674SJordan Crouse	  (/dev/agpgart) support if it is available for your platform.
28c0e09200SDave Airlie
2908f44136SMasahiro Yamadaif DRM
3008f44136SMasahiro Yamada
31174102f4SNoralf Trønnesconfig DRM_MIPI_DBI
32174102f4SNoralf Trønnes	tristate
33174102f4SNoralf Trønnes	depends on DRM
34eb7de496SRandy Dunlap	select DRM_KMS_HELPER
35174102f4SNoralf Trønnes
36068a0023SAndrzej Hajdaconfig DRM_MIPI_DSI
37068a0023SAndrzej Hajda	bool
38068a0023SAndrzej Hajda	depends on DRM
39068a0023SAndrzej Hajda
405705670dSChris Wilsonconfig DRM_DEBUG_MM
415705670dSChris Wilson	bool "Insert extra checks and debug info into the DRM range managers"
425705670dSChris Wilson	default n
433a63826cSVille Syrjälä	depends on DRM
444b514e10SChris Wilson	depends on STACKTRACE_SUPPORT
455705670dSChris Wilson	select STACKDEPOT
465705670dSChris Wilson	help
475705670dSChris Wilson	  Enable allocation tracking of memory manager and leak detection on
485705670dSChris Wilson	  shutdown.
495705670dSChris Wilson
505705670dSChris Wilson	  Recommended for driver developers only.
515705670dSChris Wilson
525705670dSChris Wilson	  If in doubt, say "N".
535705670dSChris Wilson
5484ec6728SJim Cromieconfig DRM_USE_DYNAMIC_DEBUG
5584ec6728SJim Cromie	bool "use dynamic debug to implement drm.debug"
56bb2ff6c2SVille Syrjälä	default n
57bb2ff6c2SVille Syrjälä	depends on BROKEN
5884ec6728SJim Cromie	depends on DRM
5984ec6728SJim Cromie	depends on DYNAMIC_DEBUG || DYNAMIC_DEBUG_CORE
6084ec6728SJim Cromie	depends on JUMP_LABEL
6184ec6728SJim Cromie	help
6284ec6728SJim Cromie	  Use dynamic-debug to avoid drm_debug_enabled() runtime overheads.
6384ec6728SJim Cromie	  Due to callsite counts in DRM drivers (~4k in amdgpu) and 56
6484ec6728SJim Cromie	  bytes per callsite, the .data costs can be substantial, and
6584ec6728SJim Cromie	  are therefore configurable.
6684ec6728SJim Cromie
67b85be042SMaxime Ripardconfig DRM_KUNIT_TEST_HELPERS
68b85be042SMaxime Ripard	tristate
69b85be042SMaxime Ripard	depends on DRM && KUNIT
70f1a78510SKarolina Stolarek	select DRM_KMS_HELPER
71b85be042SMaxime Ripard	help
72b85be042SMaxime Ripard	  KUnit Helpers for KMS drivers.
73b85be042SMaxime Ripard
748f456104SJosé Expósitoconfig DRM_KUNIT_TEST
758f456104SJosé Expósito	tristate "KUnit tests for DRM" if !KUNIT_ALL_TESTS
7605b8b6ddSGeert Uytterhoeven	depends on DRM && KUNIT && MMU
77f740f031SMarco Pagani	select DRM_BUDDY
787fe302aeSGeert Uytterhoeven	select DRM_DISPLAY_DP_HELPER
79eb66d34dSMaxime Ripard	select DRM_DISPLAY_HDMI_STATE_HELPER
8005b8b6ddSGeert Uytterhoeven	select DRM_DISPLAY_HELPER
819710631cSChristian König	select DRM_EXEC
82f740f031SMarco Pagani	select DRM_EXPORT_FOR_TESTS if m
8393032ae6SMarco Pagani	select DRM_GEM_SHMEM_HELPER
84f740f031SMarco Pagani	select DRM_KUNIT_TEST_HELPERS
85f740f031SMarco Pagani	select DRM_LIB_RANDOM
86f740f031SMarco Pagani	select PRIME_NUMBERS
878f456104SJosé Expósito	default KUNIT_ALL_TESTS
888f456104SJosé Expósito	help
898f456104SJosé Expósito	  This builds unit tests for DRM. This option is not useful for
908f456104SJosé Expósito	  distributions or general kernels, but only for kernel
918f456104SJosé Expósito	  developers working on DRM and associated drivers.
928f456104SJosé Expósito
938f456104SJosé Expósito	  For more information on KUnit and unit tests in general,
948f456104SJosé Expósito	  please refer to the KUnit documentation in
958f456104SJosé Expósito	  Documentation/dev-tools/kunit/.
968f456104SJosé Expósito
978f456104SJosé Expósito	  If in doubt, say "N".
988f456104SJosé Expósito
996fcefd56SDave Airlieconfig DRM_KMS_HELPER
10013a8195bSDave Airlie	tristate
10113a8195bSDave Airlie	depends on DRM
10292b6f89fSDaniel Vetter	help
10392b6f89fSDaniel Vetter	  CRTC helpers for KMS drivers.
10492b6f89fSDaniel Vetter
105bf9fb17cSJocelyn Falempeconfig DRM_PANIC
106bf9fb17cSJocelyn Falempe	bool "Display a user-friendly message when a kernel panic occurs"
1073a9b77ceSJocelyn Falempe	depends on DRM
108bf9fb17cSJocelyn Falempe	select FONT_SUPPORT
109bf9fb17cSJocelyn Falempe	help
110bf9fb17cSJocelyn Falempe	  Enable a drm panic handler, which will display a user-friendly message
111bf9fb17cSJocelyn Falempe	  when a kernel panic occurs. It's useful when using a user-space
112bf9fb17cSJocelyn Falempe	  console instead of fbcon.
113bf9fb17cSJocelyn Falempe	  It will only work if your graphic driver supports this feature.
114bf9fb17cSJocelyn Falempe	  To support Hi-DPI Display, you can enable bigger fonts like
115bf9fb17cSJocelyn Falempe	  FONT_TER16x32
116bf9fb17cSJocelyn Falempe
117bf9fb17cSJocelyn Falempeconfig DRM_PANIC_FOREGROUND_COLOR
118bf9fb17cSJocelyn Falempe	hex "Drm panic screen foreground color, in RGB"
119bf9fb17cSJocelyn Falempe	depends on DRM_PANIC
120bf9fb17cSJocelyn Falempe	default 0xffffff
121bf9fb17cSJocelyn Falempe
122bf9fb17cSJocelyn Falempeconfig DRM_PANIC_BACKGROUND_COLOR
123bf9fb17cSJocelyn Falempe	hex "Drm panic screen background color, in RGB"
124bf9fb17cSJocelyn Falempe	depends on DRM_PANIC
125bf9fb17cSJocelyn Falempe	default 0x000000
126bf9fb17cSJocelyn Falempe
127813ca3aaSJocelyn Falempeconfig DRM_PANIC_DEBUG
128813ca3aaSJocelyn Falempe	bool "Add a debug fs entry to trigger drm_panic"
129813ca3aaSJocelyn Falempe	depends on DRM_PANIC && DEBUG_FS
130813ca3aaSJocelyn Falempe	help
131813ca3aaSJocelyn Falempe	  Add dri/[device]/drm_panic_plane_x in the kernel debugfs, to force the
132813ca3aaSJocelyn Falempe	  panic handler to write the panic message to this plane scanout buffer.
133813ca3aaSJocelyn Falempe	  This is unsafe and should not be enabled on a production build.
134813ca3aaSJocelyn Falempe	  If in doubt, say "N".
135813ca3aaSJocelyn Falempe
13654034bebSJocelyn Falempeconfig DRM_PANIC_SCREEN
137a3dfb1d1SGeert Uytterhoeven	string "Panic screen formatter"
13854034bebSJocelyn Falempe	default "user"
13954034bebSJocelyn Falempe	depends on DRM_PANIC
14054034bebSJocelyn Falempe	help
14154034bebSJocelyn Falempe	  This option enable to choose what will be displayed when a kernel
14254034bebSJocelyn Falempe	  panic occurs. You can choose between "user", a short message telling
14354034bebSJocelyn Falempe	  the user to reboot the system, or "kmsg" which will display the last
14454034bebSJocelyn Falempe	  lines of kmsg.
14554034bebSJocelyn Falempe	  This can also be overridden by drm.panic_screen=xxxx kernel parameter
14654034bebSJocelyn Falempe	  or by writing to /sys/module/drm/parameters/panic_screen sysfs entry
14754034bebSJocelyn Falempe	  Default is "user"
14854034bebSJocelyn Falempe
149cb5164acSJocelyn Falempeconfig DRM_PANIC_SCREEN_QR_CODE
150cb5164acSJocelyn Falempe	bool "Add a panic screen with a QR code"
151cb5164acSJocelyn Falempe	depends on DRM_PANIC && RUST
1522ad84af4SMiguel Ojeda	select ZLIB_DEFLATE
153cb5164acSJocelyn Falempe	help
154cb5164acSJocelyn Falempe	  This option adds a QR code generator, and a panic screen with a QR
155cb5164acSJocelyn Falempe	  code. The QR code will contain the last lines of kmsg and other debug
156cb5164acSJocelyn Falempe	  information. This should be easier for the user to report a kernel
157cb5164acSJocelyn Falempe	  panic, with all debug information available.
158cb5164acSJocelyn Falempe	  To use this panic screen, also set DRM_PANIC_SCREEN to "qr_code"
159cb5164acSJocelyn Falempe
160cb5164acSJocelyn Falempeconfig DRM_PANIC_SCREEN_QR_CODE_URL
161cb5164acSJocelyn Falempe	string "Base URL of the QR code in the panic screen"
162cb5164acSJocelyn Falempe	depends on DRM_PANIC_SCREEN_QR_CODE
163cb5164acSJocelyn Falempe	help
164cb5164acSJocelyn Falempe	  This option sets the base URL to report the kernel panic. If it's set
165cb5164acSJocelyn Falempe	  the QR code will contain the URL and the kmsg compressed with zlib as
166cb5164acSJocelyn Falempe	  a URL parameter. If it's empty, the QR code will contain the kmsg as
167cb5164acSJocelyn Falempe	  uncompressed text only.
168cb5164acSJocelyn Falempe	  There is a demo code in javascript, to decode and uncompress the kmsg
169cb5164acSJocelyn Falempe	  data from the URL parameter at https://github.com/kdj0c/panic_report
170cb5164acSJocelyn Falempe
171cb5164acSJocelyn Falempeconfig DRM_PANIC_SCREEN_QR_VERSION
172cb5164acSJocelyn Falempe	int "Maximum version (size) of the QR code."
173cb5164acSJocelyn Falempe	depends on DRM_PANIC_SCREEN_QR_CODE
174cb5164acSJocelyn Falempe	default 40
175cb5164acSJocelyn Falempe	help
176cb5164acSJocelyn Falempe	  This option limits the version (or size) of the QR code. QR code
177cb5164acSJocelyn Falempe	  version ranges from Version 1 (21x21) to Version 40 (177x177).
178cb5164acSJocelyn Falempe	  Smaller QR code are easier to read, but will contain less debugging
179cb5164acSJocelyn Falempe	  data. Default is 40.
180cb5164acSJocelyn Falempe
18112a280c7SLyude Paulconfig DRM_DEBUG_DP_MST_TOPOLOGY_REFS
18212a280c7SLyude Paul        bool "Enable refcount backtrace history in the DP MST helpers"
183d6d07ca1SGuenter Roeck	depends on STACKTRACE_SUPPORT
18412a280c7SLyude Paul        select STACKDEPOT
18512a280c7SLyude Paul        depends on DRM_KMS_HELPER
18612a280c7SLyude Paul        depends on DEBUG_KERNEL
18712a280c7SLyude Paul        depends on EXPERT
18812a280c7SLyude Paul        help
18912a280c7SLyude Paul          Enables debug tracing for topology refs in DRM's DP MST helpers. A
19012a280c7SLyude Paul          history of each topology reference/dereference will be printed to the
19112a280c7SLyude Paul          kernel log once a port or branch device's topology refcount reaches 0.
19212a280c7SLyude Paul
19312a280c7SLyude Paul          This has the potential to use a lot of memory and print some very
19412a280c7SLyude Paul          large kernel messages. If in doubt, say "N".
19512a280c7SLyude Paul
196cd06ab2fSJani Nikulaconfig DRM_DEBUG_MODESET_LOCK
197cd06ab2fSJani Nikula	bool "Enable backtrace history for lock contention"
198cd06ab2fSJani Nikula	depends on STACKTRACE_SUPPORT
199cd06ab2fSJani Nikula	depends on DEBUG_KERNEL
200cd06ab2fSJani Nikula	depends on EXPERT
201cd06ab2fSJani Nikula	select STACKDEPOT
202cd06ab2fSJani Nikula	default y if DEBUG_WW_MUTEX_SLOWPATH
203cd06ab2fSJani Nikula	help
204cd06ab2fSJani Nikula	  Enable debug tracing of failures to gracefully handle drm modeset lock
205cd06ab2fSJani Nikula	  contention. A history of each drm modeset lock path hitting -EDEADLK
206cd06ab2fSJani Nikula	  will be saved until gracefully handled, and the backtrace will be
207cd06ab2fSJani Nikula	  printed when attempting to lock a contended lock.
208cd06ab2fSJani Nikula
209cd06ab2fSJani Nikula	  If in doubt, say "N".
210cd06ab2fSJani Nikula
2111f828b4dSThomas Zimmermannconfig DRM_CLIENT
2121f828b4dSThomas Zimmermann	bool
2131f828b4dSThomas Zimmermann	depends on DRM
2141f828b4dSThomas Zimmermann	help
2151f828b4dSThomas Zimmermann	  Enables support for DRM clients. DRM drivers that need
2161f828b4dSThomas Zimmermann	  struct drm_client_dev and its interfaces should select this
2171f828b4dSThomas Zimmermann	  option. Drivers that support the default clients should
2181f828b4dSThomas Zimmermann	  select DRM_CLIENT_SELECTION instead.
2191f828b4dSThomas Zimmermann
220dadd28d4SThomas Zimmermannconfig DRM_CLIENT_LIB
221dadd28d4SThomas Zimmermann	tristate
222d07fdf92SThomas Zimmermann	depends on DRM
223dadd28d4SThomas Zimmermann	select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
224dadd28d4SThomas Zimmermann	select FB_CORE if DRM_FBDEV_EMULATION
225dadd28d4SThomas Zimmermann	help
226dadd28d4SThomas Zimmermann	  This option enables the DRM client library and selects all
227dadd28d4SThomas Zimmermann	  modules and components according to the enabled clients.
228dadd28d4SThomas Zimmermann
229dadd28d4SThomas Zimmermannconfig DRM_CLIENT_SELECTION
230dadd28d4SThomas Zimmermann	tristate
231dadd28d4SThomas Zimmermann	depends on DRM
232dadd28d4SThomas Zimmermann	select DRM_CLIENT_LIB if DRM_FBDEV_EMULATION
233d07fdf92SThomas Zimmermann	help
234d07fdf92SThomas Zimmermann	  Drivers that support in-kernel DRM clients have to select this
235d07fdf92SThomas Zimmermann	  option.
236d07fdf92SThomas Zimmermann
237d07fdf92SThomas Zimmermannconfig DRM_CLIENT_SETUP
238d07fdf92SThomas Zimmermann	bool
239d07fdf92SThomas Zimmermann	depends on DRM_CLIENT_SELECTION
240dadd28d4SThomas Zimmermann	help
241dadd28d4SThomas Zimmermann	  Enables the DRM client selection. DRM drivers that support the
242dadd28d4SThomas Zimmermann	  default clients should select DRM_CLIENT_SELECTION instead.
243dadd28d4SThomas Zimmermann
244dadd28d4SThomas Zimmermannmenu "Supported DRM clients"
245dadd28d4SThomas Zimmermann	depends on DRM_CLIENT_SELECTION
246d07fdf92SThomas Zimmermann
247a03fdcb1SArchit Tanejaconfig DRM_FBDEV_EMULATION
248a03fdcb1SArchit Taneja	bool "Enable legacy fbdev support for your modesetting driver"
249dadd28d4SThomas Zimmermann	depends on DRM_CLIENT_SELECTION
2501f828b4dSThomas Zimmermann	select DRM_CLIENT
251dadd28d4SThomas Zimmermann	select DRM_CLIENT_SETUP
25291185d55SThomas Zimmermann	select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
253bb6c4507SArnd Bergmann	default FB
254a03fdcb1SArchit Taneja	help
255a03fdcb1SArchit Taneja	  Choose this option if you have a need for the legacy fbdev
256a03fdcb1SArchit Taneja	  support. Note that this support also provides the linux console
257a03fdcb1SArchit Taneja	  support on top of your modesetting driver.
258a03fdcb1SArchit Taneja
259a03fdcb1SArchit Taneja	  If in doubt, say "Y".
260a03fdcb1SArchit Taneja
2615f152576SXinliang Liuconfig DRM_FBDEV_OVERALLOC
2625f152576SXinliang Liu	int "Overallocation of the fbdev buffer"
2635f152576SXinliang Liu	depends on DRM_FBDEV_EMULATION
2645f152576SXinliang Liu	default 100
2655f152576SXinliang Liu	help
2665f152576SXinliang Liu	  Defines the fbdev buffer overallocation in percent. Default
2675f152576SXinliang Liu	  is 100. Typical values for double buffering will be 200,
2685f152576SXinliang Liu	  triple buffering 300.
2695f152576SXinliang Liu
2704be9bd10SNeil Armstrongconfig DRM_FBDEV_LEAK_PHYS_SMEM
2714be9bd10SNeil Armstrong	bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)"
2724be9bd10SNeil Armstrong	depends on DRM_FBDEV_EMULATION && EXPERT
2734be9bd10SNeil Armstrong	default n
2744be9bd10SNeil Armstrong	help
2754be9bd10SNeil Armstrong	  In order to keep user-space compatibility, we want in certain
2764be9bd10SNeil Armstrong	  use-cases to keep leaking the fbdev physical address to the
2774be9bd10SNeil Armstrong	  user-space program handling the fbdev buffer.
2784be9bd10SNeil Armstrong	  This affects, not only, Amlogic, Allwinner or Rockchip devices
2794be9bd10SNeil Armstrong	  with ARM Mali GPUs using an userspace Blob.
2804be9bd10SNeil Armstrong	  This option is not supported by upstream developers and should be
2814be9bd10SNeil Armstrong	  removed as soon as possible and be considered as a broken and
2824be9bd10SNeil Armstrong	  legacy behaviour from a modern fbdev device driver.
2834be9bd10SNeil Armstrong
2844be9bd10SNeil Armstrong	  Please send any bug reports when using this to your proprietary
2854be9bd10SNeil Armstrong	  software vendor that requires this.
2864be9bd10SNeil Armstrong
2874be9bd10SNeil Armstrong	  If in doubt, say "N" or spread the word to your closed source
2884be9bd10SNeil Armstrong	  library vendor.
2894be9bd10SNeil Armstrong
290dadd28d4SThomas Zimmermannendmenu
291dadd28d4SThomas Zimmermann
292da0df92bSCarsten Emdeconfig DRM_LOAD_EDID_FIRMWARE
293da0df92bSCarsten Emde	bool "Allow to specify an EDID data set instead of probing for it"
29453fd40a9SJani Nikula	depends on DRM
295da0df92bSCarsten Emde	help
296da0df92bSCarsten Emde	  Say Y here, if you want to use EDID data to be loaded from the
297da0df92bSCarsten Emde	  /lib/firmware directory or one of the provided built-in
298da0df92bSCarsten Emde	  data sets. This may be necessary, if the graphics adapter or
299da0df92bSCarsten Emde	  monitor are unable to provide appropriate EDID data. Since this
300da0df92bSCarsten Emde	  feature is provided as a workaround for broken hardware, the
301da0df92bSCarsten Emde	  default case is N. Details and instructions how to build your own
30272ef5e52SMauro Carvalho Chehab	  EDID data are given in Documentation/admin-guide/edid.rst.
303da0df92bSCarsten Emde
3041e0f6642SThomas Zimmermannsource "drivers/gpu/drm/display/Kconfig"
3052c6d1fffSHans Verkuil
306ba4e7d97SThomas Hellstromconfig DRM_TTM
307771fe6b9SJerome Glisse	tristate
30862a0d98aSBenjamin Gaignard	depends on DRM && MMU
309ba4e7d97SThomas Hellstrom	help
310ba4e7d97SThomas Hellstrom	  GPU memory management subsystem for devices with multiple
311ba4e7d97SThomas Hellstrom	  GPU memory types. Will be enabled automatically if a device driver
312ba4e7d97SThomas Hellstrom	  uses it.
313ba4e7d97SThomas Hellstrom
314e3912d09SKarolina Stolarekconfig DRM_TTM_KUNIT_TEST
315e3912d09SKarolina Stolarek        tristate "KUnit tests for TTM" if !KUNIT_ALL_TESTS
316e3912d09SKarolina Stolarek        default n
3179d3f8a72SChristian König        depends on DRM && KUNIT && MMU && (UML || COMPILE_TEST)
318e3912d09SKarolina Stolarek        select DRM_TTM
31932d618e9SKarolina Stolarek        select DRM_BUDDY
320e3912d09SKarolina Stolarek        select DRM_EXPORT_FOR_TESTS if m
321e3912d09SKarolina Stolarek        select DRM_KUNIT_TEST_HELPERS
322e3912d09SKarolina Stolarek        default KUNIT_ALL_TESTS
323e3912d09SKarolina Stolarek        help
324e3912d09SKarolina Stolarek          Enables unit tests for TTM, a GPU memory manager subsystem used
325e3912d09SKarolina Stolarek          to manage memory buffers. This option is mostly useful for kernel
3269d3f8a72SChristian König          developers. It depends on (UML || COMPILE_TEST) since no other driver
3279d3f8a72SChristian König          which uses TTM can be loaded while running the tests.
328e3912d09SKarolina Stolarek
329e3912d09SKarolina Stolarek          If in doubt, say "N".
330e3912d09SKarolina Stolarek
33109593216SChristian Königconfig DRM_EXEC
33209593216SChristian König	tristate
33309593216SChristian König	depends on DRM
33409593216SChristian König	help
33509593216SChristian König	  Execution context for command submissions
33609593216SChristian König
337fe7acaa7SDanilo Krummrichconfig DRM_GPUVM
338fe7acaa7SDanilo Krummrich	tristate
339fe7acaa7SDanilo Krummrich	depends on DRM
340eeb1f825SDanilo Krummrich	select DRM_EXEC
341fe7acaa7SDanilo Krummrich	help
342fe7acaa7SDanilo Krummrich	  GPU-VM representation providing helpers to manage a GPUs virtual
343fe7acaa7SDanilo Krummrich	  address space
344fe7acaa7SDanilo Krummrich
3456387a3c4SArunpravinconfig DRM_BUDDY
3466387a3c4SArunpravin	tristate
3476387a3c4SArunpravin	depends on DRM
3486387a3c4SArunpravin	help
3496387a3c4SArunpravin	  A page based buddy allocator
3506387a3c4SArunpravin
35185438a8dSThomas Zimmermannconfig DRM_VRAM_HELPER
35285438a8dSThomas Zimmermann	tristate
35385438a8dSThomas Zimmermann	depends on DRM
35485438a8dSThomas Zimmermann	help
35585438a8dSThomas Zimmermann	  Helpers for VRAM memory management
35685438a8dSThomas Zimmermann
357ff540b76SGerd Hoffmannconfig DRM_TTM_HELPER
358ff540b76SGerd Hoffmann	tristate
359ff540b76SGerd Hoffmann	depends on DRM
360ff540b76SGerd Hoffmann	select DRM_TTM
3618058944fSThomas Zimmermann	select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
362ff540b76SGerd Hoffmann	help
363ff540b76SGerd Hoffmann	  Helpers for ttm-based gem objects
364ff540b76SGerd Hoffmann
3654a83c26aSDanilo Krummrichconfig DRM_GEM_DMA_HELPER
3664b2b5e14SThomas Zimmermann	tristate
367e1c7e324SChristoph Hellwig	depends on DRM
36867c40c9bSThomas Zimmermann	select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
369b9d47450SSascha Hauer	help
3704a83c26aSDanilo Krummrich	  Choose this if you need the GEM DMA helper functions
371b9d47450SSascha Hauer
3722194a63aSNoralf Trønnesconfig DRM_GEM_SHMEM_HELPER
3734b2b5e14SThomas Zimmermann	tristate
3748b93d1d7SDaniel Vetter	depends on DRM && MMU
375*efb113fcSArnd Bergmann	select FB_CORE if DRM_FBDEV_EMULATION
3768058944fSThomas Zimmermann	select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
3772194a63aSNoralf Trønnes	help
3782194a63aSNoralf Trønnes	  Choose this if you need the GEM shmem helper functions
3792194a63aSNoralf Trønnes
380849ee8a2SMaarten Lankhorstconfig DRM_SUBALLOC_HELPER
381849ee8a2SMaarten Lankhorst	tristate
382849ee8a2SMaarten Lankhorst	depends on DRM
383849ee8a2SMaarten Lankhorst
3841b1f42d8SLucas Stachconfig DRM_SCHED
3851b1f42d8SLucas Stach	tristate
3861b1f42d8SLucas Stach	depends on DRM
3871b1f42d8SLucas Stach
3886504d0d9SRob Clarksource "drivers/gpu/drm/i2c/Kconfig"
3896504d0d9SRob Clark
3908e22d792SLiviu Dudausource "drivers/gpu/drm/arm/Kconfig"
3918e22d792SLiviu Dudau
392f71d0187SDave Airliesource "drivers/gpu/drm/radeon/Kconfig"
393f71d0187SDave Airlie
394d38ceaf9SAlex Deuchersource "drivers/gpu/drm/amd/amdgpu/Kconfig"
395a8fe58ceSMaruthi Bayyavarapu
396f3c93cbdSBen Skeggssource "drivers/gpu/drm/nouveau/Kconfig"
397f3c93cbdSBen Skeggs
3984520f53aSDaniel Vettersource "drivers/gpu/drm/i915/Kconfig"
39999486b8eSJosh Triplett
400dd08ebf6SMatthew Brostsource "drivers/gpu/drm/xe/Kconfig"
401dd08ebf6SMatthew Brost
402ed794057SAnitha Chrisanthussource "drivers/gpu/drm/kmb/Kconfig"
403ed794057SAnitha Chrisanthus
404502e95c6SZach Reiznerconfig DRM_VGEM
405502e95c6SZach Reizner	tristate "Virtual GEM provider"
40645d9c8ddSDaniel Vetter	depends on DRM && MMU
40745d9c8ddSDaniel Vetter	select DRM_GEM_SHMEM_HELPER
408502e95c6SZach Reizner	help
409502e95c6SZach Reizner	  Choose this option to get a virtual graphics memory manager,
410502e95c6SZach Reizner	  as used by Mesa's software renderer for enhanced performance.
411502e95c6SZach Reizner	  If M is selected the module will be called vgem.
412502e95c6SZach Reizner
413ffcc67cdSHarry Wentlandsource "drivers/gpu/drm/vkms/Kconfig"
414502e95c6SZach Reizner
4151c248b7dSInki Daesource "drivers/gpu/drm/exynos/Kconfig"
4165a7b74beSThomas Hellstrom
4172048e328SMark Yaosource "drivers/gpu/drm/rockchip/Kconfig"
4182048e328SMark Yao
4195a7b74beSThomas Hellstromsource "drivers/gpu/drm/vmwgfx/Kconfig"
42091c75492SAlan Cox
42191c75492SAlan Coxsource "drivers/gpu/drm/gma500/Kconfig"
42291c75492SAlan Cox
4235320918bSDave Airliesource "drivers/gpu/drm/udl/Kconfig"
424312fec14SDave Airlie
425312fec14SDave Airliesource "drivers/gpu/drm/ast/Kconfig"
426312fec14SDave Airlie
427414c4531SDave Airliesource "drivers/gpu/drm/mgag200/Kconfig"
428f9aa76a8SDave Airlie
42996f60e37SRussell Kingsource "drivers/gpu/drm/armada/Kconfig"
43096f60e37SRussell King
4311a396789SBoris Brezillonsource "drivers/gpu/drm/atmel-hlcdc/Kconfig"
4321a396789SBoris Brezillon
43311696c5eSBiju Dassource "drivers/gpu/drm/renesas/Kconfig"
434d8f4a9edSThierry Reding
4359026e0d1SMaxime Ripardsource "drivers/gpu/drm/sun4i/Kconfig"
4369026e0d1SMaxime Ripard
4378bb0daffSRob Clarksource "drivers/gpu/drm/omapdrm/Kconfig"
438ca18e142SDave Airlie
43916ea975eSRob Clarksource "drivers/gpu/drm/tilcdc/Kconfig"
440f64122c1SDave Airlie
441f64122c1SDave Airliesource "drivers/gpu/drm/qxl/Kconfig"
442c8afe684SRob Clark
443dc5698e8SDave Airliesource "drivers/gpu/drm/virtio/Kconfig"
444dc5698e8SDave Airlie
445c8afe684SRob Clarksource "drivers/gpu/drm/msm/Kconfig"
446dee8268fSThierry Reding
447109eee2fSJianwei Wangsource "drivers/gpu/drm/fsl-dcu/Kconfig"
448109eee2fSJianwei Wang
449dee8268fSThierry Redingsource "drivers/gpu/drm/tegra/Kconfig"
450aead40eaSThierry Reding
451b759012cSYannick Fertresource "drivers/gpu/drm/stm/Kconfig"
452b759012cSYannick Fertre
453aead40eaSThierry Redingsource "drivers/gpu/drm/panel/Kconfig"
454f2cb3148SBenjamin Gaignard
455a33ee95fSThierry Redingsource "drivers/gpu/drm/bridge/Kconfig"
456a33ee95fSThierry Reding
457f2cb3148SBenjamin Gaignardsource "drivers/gpu/drm/sti/Kconfig"
4584a488a7aSOded Gabbay
4596556f7f8SPhilipp Zabelsource "drivers/gpu/drm/imx/Kconfig"
460c8b75bcaSEric Anholt
46190b86fccSPaul Cercueilsource "drivers/gpu/drm/ingenic/Kconfig"
46290b86fccSPaul Cercueil
46357692c94SEric Anholtsource "drivers/gpu/drm/v3d/Kconfig"
46457692c94SEric Anholt
465c8b75bcaSEric Anholtsource "drivers/gpu/drm/vc4/Kconfig"
466a8c21a54SThe etnaviv authors
467f39db26cSSui Jingfengsource "drivers/gpu/drm/loongson/Kconfig"
468f39db26cSSui Jingfeng
469a8c21a54SThe etnaviv authorssource "drivers/gpu/drm/etnaviv/Kconfig"
47051dacf20SCarlos Palminha
47123e7b2abSXinliang Liusource "drivers/gpu/drm/hisilicon/Kconfig"
472119f5173SCK Hu
473efeeaefeSPaul Kocialkowskisource "drivers/gpu/drm/logicvc/Kconfig"
474efeeaefeSPaul Kocialkowski
475119f5173SCK Husource "drivers/gpu/drm/mediatek/Kconfig"
476d92d9c3aSDavid Herrmann
47745d59d70SMarek Vasutsource "drivers/gpu/drm/mxsfb/Kconfig"
47845d59d70SMarek Vasut
479bbbe775eSNeil Armstrongsource "drivers/gpu/drm/meson/Kconfig"
480bbbe775eSNeil Armstrong
481043386a0SNoralf Trønnessource "drivers/gpu/drm/tiny/Kconfig"
482fa201ac2SNoralf Trønnes
483bed41005STom Cookseysource "drivers/gpu/drm/pl111/Kconfig"
484bed41005STom Cooksey
485179c02feSLinus Walleijsource "drivers/gpu/drm/tve200/Kconfig"
486179c02feSLinus Walleij
487c575b7eeSOleksandr Andrushchenkosource "drivers/gpu/drm/xen/Kconfig"
488c575b7eeSOleksandr Andrushchenko
489131abc56SHans de Goedesource "drivers/gpu/drm/vboxvideo/Kconfig"
490131abc56SHans de Goede
491a1d2a633SQiang Yusource "drivers/gpu/drm/lima/Kconfig"
492a1d2a633SQiang Yu
493f3ba9122SRob Herringsource "drivers/gpu/drm/panfrost/Kconfig"
494f3ba9122SRob Herring
495d72f0490SBoris Brezillonsource "drivers/gpu/drm/panthor/Kconfig"
496d72f0490SBoris Brezillon
4974f2a8f58SJoel Stanleysource "drivers/gpu/drm/aspeed/Kconfig"
4984f2a8f58SJoel Stanley
4995fc537bfSLinus Walleijsource "drivers/gpu/drm/mcde/Kconfig"
5005fc537bfSLinus Walleij
50132a1795fSJyri Sarhasource "drivers/gpu/drm/tidss/Kconfig"
50232a1795fSJyri Sarha
503d76271d2SHyun Kwonsource "drivers/gpu/drm/xlnx/Kconfig"
504d76271d2SHyun Kwon
50540e1a70bSNoralf Trønnessource "drivers/gpu/drm/gud/Kconfig"
50640e1a70bSNoralf Trønnes
507a61732e8SJavier Martinez Canillassource "drivers/gpu/drm/solomon/Kconfig"
508a61732e8SJavier Martinez Canillas
50943531eddSKevin Tangsource "drivers/gpu/drm/sprd/Kconfig"
51043531eddSKevin Tang
5114babef07SSarah Walkersource "drivers/gpu/drm/imagination/Kconfig"
5124babef07SSarah Walker
51376c56a5aSDeepak Rawatconfig DRM_HYPERV
51476c56a5aSDeepak Rawat	tristate "DRM Support for Hyper-V synthetic video device"
51576c56a5aSDeepak Rawat	depends on DRM && PCI && MMU && HYPERV
516663269ceSThomas Zimmermann	select DRM_CLIENT_SELECTION
51776c56a5aSDeepak Rawat	select DRM_KMS_HELPER
51876c56a5aSDeepak Rawat	select DRM_GEM_SHMEM_HELPER
51976c56a5aSDeepak Rawat	help
52076c56a5aSDeepak Rawat	 This is a KMS driver for Hyper-V synthetic video device. Choose this
52176c56a5aSDeepak Rawat	 option if you would like to enable drm driver for Hyper-V virtual
52276c56a5aSDeepak Rawat	 machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so
52376c56a5aSDeepak Rawat	 that DRM driver is used by default.
52476c56a5aSDeepak Rawat
52576c56a5aSDeepak Rawat	 If M is selected the module will be called hyperv_drm.
52676c56a5aSDeepak Rawat
5279b6c80beSRandy Dunlapconfig DRM_EXPORT_FOR_TESTS
5289b6c80beSRandy Dunlap	bool
5299b6c80beSRandy Dunlap
530a33d42ddSChris Wilsonconfig DRM_LIB_RANDOM
531a33d42ddSChris Wilson	bool
532a33d42ddSChris Wilson	default n
533a1a98689SHans de Goede
534a1a98689SHans de Goedeconfig DRM_PRIVACY_SCREEN
535a1a98689SHans de Goede	bool
536a1a98689SHans de Goede	default n
537f89632a9SJani Nikula
538f89632a9SJani Nikulaconfig DRM_WERROR
539f89632a9SJani Nikula	bool "Compile the drm subsystem with warnings as errors"
5404b2d588dSGeert Uytterhoeven	depends on DRM && EXPERT
5410c76053eSJani Nikula	depends on !WERROR
542f89632a9SJani Nikula	default n
543f89632a9SJani Nikula	help
544f89632a9SJani Nikula	  A kernel build should not cause any compiler warnings, and this
545f89632a9SJani Nikula	  enables the '-Werror' flag to enforce that rule in the drm subsystem.
546f89632a9SJani Nikula
547f89632a9SJani Nikula	  The drm subsystem enables more warnings than the kernel default, so
548f89632a9SJani Nikula	  this config option is disabled by default.
549f89632a9SJani Nikula
550f89632a9SJani Nikula	  If in doubt, say N.
55108f44136SMasahiro Yamada
55208f44136SMasahiro Yamadaendif
55308f44136SMasahiro Yamada
55408f44136SMasahiro Yamada# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
55508f44136SMasahiro Yamadaconfig DRM_PANEL_ORIENTATION_QUIRKS
55608f44136SMasahiro Yamada	tristate
557