Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
1da177e4 LT |
2 | # |
3 | # Drm device configuration | |
4 | # | |
5 | # This driver provides support for the | |
6 | # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. | |
7 | # | |
179b025f | 8 | menuconfig DRM |
1da177e4 | 9 | tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)" |
62a0d98a | 10 | depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA |
8d70f395 | 11 | select DRM_PANEL_ORIENTATION_QUIRKS |
c242f484 JMC |
12 | select DRM_KMS_HELPER if DRM_FBDEV_EMULATION |
13 | select FB_CORE if DRM_FBDEV_EMULATION | |
cd8a064f | 14 | select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION |
10a85120 | 15 | select HDMI |
57a6297e | 16 | select I2C |
3248877e | 17 | select DMA_SHARED_BUFFER |
96260142 | 18 | select SYNC_FILE |
bfe3911a CW |
19 | # gallium uses SYS_kcmp for os_same_file_description() to de-duplicate |
20 | # device and dmabuf fd. Let's make sure that is available for our userspace. | |
21 | select KCMP | |
93604a5a | 22 | select VIDEO_CMDLINE |
9a758d87 | 23 | select VIDEO_NOMODESET |
1da177e4 LT |
24 | help |
25 | Kernel-level support for the Direct Rendering Infrastructure (DRI) | |
26 | introduced in XFree86 4.0. If you say Y here, you need to select | |
27 | the module that's right for your graphics card from the list below. | |
28 | These modules provide support for synchronization, security, and | |
29 | DMA transfers. Please see <http://dri.sourceforge.net/> for more | |
30 | details. You should also select and configure AGP | |
dcdb1674 | 31 | (/dev/agpgart) support if it is available for your platform. |
1da177e4 | 32 | |
174102f4 NT |
33 | config DRM_MIPI_DBI |
34 | tristate | |
35 | depends on DRM | |
eb7de496 | 36 | select DRM_KMS_HELPER |
174102f4 | 37 | |
068a0023 AH |
38 | config DRM_MIPI_DSI |
39 | bool | |
40 | depends on DRM | |
41 | ||
5705670d CW |
42 | config DRM_DEBUG_MM |
43 | bool "Insert extra checks and debug info into the DRM range managers" | |
44 | default n | |
cd456f8d | 45 | depends on DRM=y |
4b514e10 | 46 | depends on STACKTRACE_SUPPORT |
5705670d CW |
47 | select STACKDEPOT |
48 | help | |
49 | Enable allocation tracking of memory manager and leak detection on | |
50 | shutdown. | |
51 | ||
52 | Recommended for driver developers only. | |
53 | ||
54 | If in doubt, say "N". | |
55 | ||
84ec6728 JC |
56 | config DRM_USE_DYNAMIC_DEBUG |
57 | bool "use dynamic debug to implement drm.debug" | |
bb2ff6c2 VS |
58 | default n |
59 | depends on BROKEN | |
84ec6728 JC |
60 | depends on DRM |
61 | depends on DYNAMIC_DEBUG || DYNAMIC_DEBUG_CORE | |
62 | depends on JUMP_LABEL | |
63 | help | |
64 | Use dynamic-debug to avoid drm_debug_enabled() runtime overheads. | |
65 | Due to callsite counts in DRM drivers (~4k in amdgpu) and 56 | |
66 | bytes per callsite, the .data costs can be substantial, and | |
67 | are therefore configurable. | |
68 | ||
b85be042 MR |
69 | config DRM_KUNIT_TEST_HELPERS |
70 | tristate | |
71 | depends on DRM && KUNIT | |
72 | help | |
73 | KUnit Helpers for KMS drivers. | |
74 | ||
8f456104 JE |
75 | config DRM_KUNIT_TEST |
76 | tristate "KUnit tests for DRM" if !KUNIT_ALL_TESTS | |
ba8f16cd MC |
77 | depends on DRM && KUNIT |
78 | select PRIME_NUMBERS | |
79 | select DRM_DISPLAY_DP_HELPER | |
80 | select DRM_DISPLAY_HELPER | |
81 | select DRM_LIB_RANDOM | |
8f456104 | 82 | select DRM_KMS_HELPER |
ba8f16cd MC |
83 | select DRM_BUDDY |
84 | select DRM_EXPORT_FOR_TESTS if m | |
b85be042 | 85 | select DRM_KUNIT_TEST_HELPERS |
9710631c | 86 | select DRM_EXEC |
8f456104 JE |
87 | default KUNIT_ALL_TESTS |
88 | help | |
89 | This builds unit tests for DRM. This option is not useful for | |
90 | distributions or general kernels, but only for kernel | |
91 | developers working on DRM and associated drivers. | |
92 | ||
93 | For more information on KUnit and unit tests in general, | |
94 | please refer to the KUnit documentation in | |
95 | Documentation/dev-tools/kunit/. | |
96 | ||
97 | If in doubt, say "N". | |
98 | ||
6fcefd56 | 99 | config DRM_KMS_HELPER |
13a8195b DA |
100 | tristate |
101 | depends on DRM | |
92b6f89f DV |
102 | help |
103 | CRTC helpers for KMS drivers. | |
104 | ||
12a280c7 LP |
105 | config DRM_DEBUG_DP_MST_TOPOLOGY_REFS |
106 | bool "Enable refcount backtrace history in the DP MST helpers" | |
d6d07ca1 | 107 | depends on STACKTRACE_SUPPORT |
12a280c7 LP |
108 | select STACKDEPOT |
109 | depends on DRM_KMS_HELPER | |
110 | depends on DEBUG_KERNEL | |
111 | depends on EXPERT | |
112 | help | |
113 | Enables debug tracing for topology refs in DRM's DP MST helpers. A | |
114 | history of each topology reference/dereference will be printed to the | |
115 | kernel log once a port or branch device's topology refcount reaches 0. | |
116 | ||
117 | This has the potential to use a lot of memory and print some very | |
118 | large kernel messages. If in doubt, say "N". | |
119 | ||
cd06ab2f JN |
120 | config DRM_DEBUG_MODESET_LOCK |
121 | bool "Enable backtrace history for lock contention" | |
122 | depends on STACKTRACE_SUPPORT | |
123 | depends on DEBUG_KERNEL | |
124 | depends on EXPERT | |
125 | select STACKDEPOT | |
126 | default y if DEBUG_WW_MUTEX_SLOWPATH | |
127 | help | |
128 | Enable debug tracing of failures to gracefully handle drm modeset lock | |
129 | contention. A history of each drm modeset lock path hitting -EDEADLK | |
130 | will be saved until gracefully handled, and the backtrace will be | |
131 | printed when attempting to lock a contended lock. | |
132 | ||
133 | If in doubt, say "N". | |
134 | ||
a03fdcb1 AT |
135 | config DRM_FBDEV_EMULATION |
136 | bool "Enable legacy fbdev support for your modesetting driver" | |
c242f484 | 137 | depends on DRM |
91185d55 | 138 | select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE |
bb6c4507 | 139 | default FB |
a03fdcb1 AT |
140 | help |
141 | Choose this option if you have a need for the legacy fbdev | |
142 | support. Note that this support also provides the linux console | |
143 | support on top of your modesetting driver. | |
144 | ||
145 | If in doubt, say "Y". | |
146 | ||
5f152576 XL |
147 | config DRM_FBDEV_OVERALLOC |
148 | int "Overallocation of the fbdev buffer" | |
149 | depends on DRM_FBDEV_EMULATION | |
150 | default 100 | |
151 | help | |
152 | Defines the fbdev buffer overallocation in percent. Default | |
153 | is 100. Typical values for double buffering will be 200, | |
154 | triple buffering 300. | |
155 | ||
4be9bd10 NA |
156 | config DRM_FBDEV_LEAK_PHYS_SMEM |
157 | bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)" | |
158 | depends on DRM_FBDEV_EMULATION && EXPERT | |
159 | default n | |
160 | help | |
161 | In order to keep user-space compatibility, we want in certain | |
162 | use-cases to keep leaking the fbdev physical address to the | |
163 | user-space program handling the fbdev buffer. | |
164 | This affects, not only, Amlogic, Allwinner or Rockchip devices | |
165 | with ARM Mali GPUs using an userspace Blob. | |
166 | This option is not supported by upstream developers and should be | |
167 | removed as soon as possible and be considered as a broken and | |
168 | legacy behaviour from a modern fbdev device driver. | |
169 | ||
170 | Please send any bug reports when using this to your proprietary | |
171 | software vendor that requires this. | |
172 | ||
173 | If in doubt, say "N" or spread the word to your closed source | |
174 | library vendor. | |
175 | ||
da0df92b CE |
176 | config DRM_LOAD_EDID_FIRMWARE |
177 | bool "Allow to specify an EDID data set instead of probing for it" | |
53fd40a9 | 178 | depends on DRM |
da0df92b CE |
179 | help |
180 | Say Y here, if you want to use EDID data to be loaded from the | |
181 | /lib/firmware directory or one of the provided built-in | |
182 | data sets. This may be necessary, if the graphics adapter or | |
183 | monitor are unable to provide appropriate EDID data. Since this | |
184 | feature is provided as a workaround for broken hardware, the | |
185 | default case is N. Details and instructions how to build your own | |
72ef5e52 | 186 | EDID data are given in Documentation/admin-guide/edid.rst. |
da0df92b | 187 | |
1e0f6642 | 188 | source "drivers/gpu/drm/display/Kconfig" |
2c6d1fff | 189 | |
ba4e7d97 | 190 | config DRM_TTM |
771fe6b9 | 191 | tristate |
62a0d98a | 192 | depends on DRM && MMU |
ba4e7d97 TH |
193 | help |
194 | GPU memory management subsystem for devices with multiple | |
195 | GPU memory types. Will be enabled automatically if a device driver | |
196 | uses it. | |
197 | ||
e3912d09 KS |
198 | config DRM_TTM_KUNIT_TEST |
199 | tristate "KUnit tests for TTM" if !KUNIT_ALL_TESTS | |
200 | default n | |
ff065eaf | 201 | depends on DRM && KUNIT && MMU |
e3912d09 KS |
202 | select DRM_TTM |
203 | select DRM_EXPORT_FOR_TESTS if m | |
204 | select DRM_KUNIT_TEST_HELPERS | |
205 | default KUNIT_ALL_TESTS | |
206 | help | |
207 | Enables unit tests for TTM, a GPU memory manager subsystem used | |
208 | to manage memory buffers. This option is mostly useful for kernel | |
209 | developers. | |
210 | ||
211 | If in doubt, say "N". | |
212 | ||
09593216 CK |
213 | config DRM_EXEC |
214 | tristate | |
215 | depends on DRM | |
216 | help | |
217 | Execution context for command submissions | |
218 | ||
6387a3c4 A |
219 | config DRM_BUDDY |
220 | tristate | |
221 | depends on DRM | |
222 | help | |
223 | A page based buddy allocator | |
224 | ||
85438a8d TZ |
225 | config DRM_VRAM_HELPER |
226 | tristate | |
227 | depends on DRM | |
85438a8d TZ |
228 | help |
229 | Helpers for VRAM memory management | |
230 | ||
ff540b76 GH |
231 | config DRM_TTM_HELPER |
232 | tristate | |
233 | depends on DRM | |
234 | select DRM_TTM | |
235 | help | |
236 | Helpers for ttm-based gem objects | |
237 | ||
4a83c26a | 238 | config DRM_GEM_DMA_HELPER |
4b2b5e14 | 239 | tristate |
e1c7e324 | 240 | depends on DRM |
b21f187f | 241 | select FB_DMAMEM_HELPERS if DRM_FBDEV_EMULATION |
b9d47450 | 242 | help |
4a83c26a | 243 | Choose this if you need the GEM DMA helper functions |
b9d47450 | 244 | |
2194a63a | 245 | config DRM_GEM_SHMEM_HELPER |
4b2b5e14 | 246 | tristate |
8b93d1d7 | 247 | depends on DRM && MMU |
2194a63a NT |
248 | help |
249 | Choose this if you need the GEM shmem helper functions | |
250 | ||
849ee8a2 ML |
251 | config DRM_SUBALLOC_HELPER |
252 | tristate | |
253 | depends on DRM | |
254 | ||
1b1f42d8 LS |
255 | config DRM_SCHED |
256 | tristate | |
257 | depends on DRM | |
258 | ||
6504d0d9 RC |
259 | source "drivers/gpu/drm/i2c/Kconfig" |
260 | ||
8e22d792 LD |
261 | source "drivers/gpu/drm/arm/Kconfig" |
262 | ||
f71d0187 DA |
263 | source "drivers/gpu/drm/radeon/Kconfig" |
264 | ||
d38ceaf9 | 265 | source "drivers/gpu/drm/amd/amdgpu/Kconfig" |
a8fe58ce | 266 | |
f3c93cbd BS |
267 | source "drivers/gpu/drm/nouveau/Kconfig" |
268 | ||
4520f53a | 269 | source "drivers/gpu/drm/i915/Kconfig" |
99486b8e | 270 | |
ed794057 AC |
271 | source "drivers/gpu/drm/kmb/Kconfig" |
272 | ||
502e95c6 ZR |
273 | config DRM_VGEM |
274 | tristate "Virtual GEM provider" | |
45d9c8dd DV |
275 | depends on DRM && MMU |
276 | select DRM_GEM_SHMEM_HELPER | |
502e95c6 ZR |
277 | help |
278 | Choose this option to get a virtual graphics memory manager, | |
279 | as used by Mesa's software renderer for enhanced performance. | |
280 | If M is selected the module will be called vgem. | |
281 | ||
1c7c5fd9 | 282 | config DRM_VKMS |
c91b007e | 283 | tristate "Virtual KMS (EXPERIMENTAL)" |
45d9c8dd | 284 | depends on DRM && MMU |
5ba57bab | 285 | select DRM_KMS_HELPER |
488c888a | 286 | select DRM_GEM_SHMEM_HELPER |
f2a4a13a | 287 | select CRC32 |
c91b007e | 288 | default n |
1c7c5fd9 | 289 | help |
c91b007e RS |
290 | Virtual Kernel Mode-Setting (VKMS) is used for testing or for |
291 | running GPU in a headless machines. Choose this option to get | |
292 | a VKMS. | |
293 | ||
1c7c5fd9 | 294 | If M is selected the module will be called vkms. |
502e95c6 | 295 | |
5a7b74be TH |
296 | source "drivers/gpu/drm/exynos/Kconfig" |
297 | ||
2048e328 MY |
298 | source "drivers/gpu/drm/rockchip/Kconfig" |
299 | ||
5a7b74be | 300 | source "drivers/gpu/drm/vmwgfx/Kconfig" |
91c75492 AC |
301 | |
302 | source "drivers/gpu/drm/gma500/Kconfig" | |
303 | ||
5320918b | 304 | source "drivers/gpu/drm/udl/Kconfig" |
312fec14 DA |
305 | |
306 | source "drivers/gpu/drm/ast/Kconfig" | |
307 | ||
414c4531 | 308 | source "drivers/gpu/drm/mgag200/Kconfig" |
f9aa76a8 | 309 | |
96f60e37 RK |
310 | source "drivers/gpu/drm/armada/Kconfig" |
311 | ||
1a396789 BB |
312 | source "drivers/gpu/drm/atmel-hlcdc/Kconfig" |
313 | ||
11696c5e | 314 | source "drivers/gpu/drm/renesas/Kconfig" |
d8f4a9ed | 315 | |
9026e0d1 MR |
316 | source "drivers/gpu/drm/sun4i/Kconfig" |
317 | ||
8bb0daff | 318 | source "drivers/gpu/drm/omapdrm/Kconfig" |
ca18e142 | 319 | |
16ea975e | 320 | source "drivers/gpu/drm/tilcdc/Kconfig" |
f64122c1 DA |
321 | |
322 | source "drivers/gpu/drm/qxl/Kconfig" | |
c8afe684 | 323 | |
dc5698e8 DA |
324 | source "drivers/gpu/drm/virtio/Kconfig" |
325 | ||
c8afe684 | 326 | source "drivers/gpu/drm/msm/Kconfig" |
dee8268f | 327 | |
109eee2f JW |
328 | source "drivers/gpu/drm/fsl-dcu/Kconfig" |
329 | ||
dee8268f | 330 | source "drivers/gpu/drm/tegra/Kconfig" |
aead40ea | 331 | |
b759012c YF |
332 | source "drivers/gpu/drm/stm/Kconfig" |
333 | ||
aead40ea | 334 | source "drivers/gpu/drm/panel/Kconfig" |
f2cb3148 | 335 | |
a33ee95f TR |
336 | source "drivers/gpu/drm/bridge/Kconfig" |
337 | ||
f2cb3148 | 338 | source "drivers/gpu/drm/sti/Kconfig" |
4a488a7a | 339 | |
6556f7f8 | 340 | source "drivers/gpu/drm/imx/Kconfig" |
c8b75bca | 341 | |
90b86fcc PC |
342 | source "drivers/gpu/drm/ingenic/Kconfig" |
343 | ||
57692c94 EA |
344 | source "drivers/gpu/drm/v3d/Kconfig" |
345 | ||
c8b75bca | 346 | source "drivers/gpu/drm/vc4/Kconfig" |
a8c21a54 | 347 | |
f39db26c SJ |
348 | source "drivers/gpu/drm/loongson/Kconfig" |
349 | ||
a8c21a54 | 350 | source "drivers/gpu/drm/etnaviv/Kconfig" |
51dacf20 | 351 | |
23e7b2ab | 352 | source "drivers/gpu/drm/hisilicon/Kconfig" |
119f5173 | 353 | |
efeeaefe PK |
354 | source "drivers/gpu/drm/logicvc/Kconfig" |
355 | ||
119f5173 | 356 | source "drivers/gpu/drm/mediatek/Kconfig" |
d92d9c3a | 357 | |
45d59d70 MV |
358 | source "drivers/gpu/drm/mxsfb/Kconfig" |
359 | ||
bbbe775e NA |
360 | source "drivers/gpu/drm/meson/Kconfig" |
361 | ||
043386a0 | 362 | source "drivers/gpu/drm/tiny/Kconfig" |
fa201ac2 | 363 | |
bed41005 TC |
364 | source "drivers/gpu/drm/pl111/Kconfig" |
365 | ||
179c02fe LW |
366 | source "drivers/gpu/drm/tve200/Kconfig" |
367 | ||
c575b7ee OA |
368 | source "drivers/gpu/drm/xen/Kconfig" |
369 | ||
131abc56 HG |
370 | source "drivers/gpu/drm/vboxvideo/Kconfig" |
371 | ||
a1d2a633 QY |
372 | source "drivers/gpu/drm/lima/Kconfig" |
373 | ||
f3ba9122 RH |
374 | source "drivers/gpu/drm/panfrost/Kconfig" |
375 | ||
4f2a8f58 JS |
376 | source "drivers/gpu/drm/aspeed/Kconfig" |
377 | ||
5fc537bf LW |
378 | source "drivers/gpu/drm/mcde/Kconfig" |
379 | ||
32a1795f JS |
380 | source "drivers/gpu/drm/tidss/Kconfig" |
381 | ||
d76271d2 HK |
382 | source "drivers/gpu/drm/xlnx/Kconfig" |
383 | ||
40e1a70b NT |
384 | source "drivers/gpu/drm/gud/Kconfig" |
385 | ||
a61732e8 JMC |
386 | source "drivers/gpu/drm/solomon/Kconfig" |
387 | ||
43531edd KT |
388 | source "drivers/gpu/drm/sprd/Kconfig" |
389 | ||
76c56a5a DR |
390 | config DRM_HYPERV |
391 | tristate "DRM Support for Hyper-V synthetic video device" | |
392 | depends on DRM && PCI && MMU && HYPERV | |
393 | select DRM_KMS_HELPER | |
394 | select DRM_GEM_SHMEM_HELPER | |
395 | help | |
396 | This is a KMS driver for Hyper-V synthetic video device. Choose this | |
397 | option if you would like to enable drm driver for Hyper-V virtual | |
398 | machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so | |
399 | that DRM driver is used by default. | |
400 | ||
401 | If M is selected the module will be called hyperv_drm. | |
402 | ||
d92d9c3a DH |
403 | # Keep legacy drivers last |
404 | ||
405 | menuconfig DRM_LEGACY | |
406 | bool "Enable legacy drivers (DANGEROUS)" | |
7e53c284 | 407 | depends on DRM && MMU |
d92d9c3a DH |
408 | help |
409 | Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous | |
410 | APIs to user-space, which can be used to circumvent access | |
411 | restrictions and other security measures. For backwards compatibility | |
412 | those drivers are still available, but their use is highly | |
413 | inadvisable and might harm your system. | |
414 | ||
415 | You are recommended to use the safe modeset-only drivers instead, and | |
416 | perform 3D emulation in user-space. | |
417 | ||
418 | Unless you have strong reasons to go rogue, say "N". | |
419 | ||
420 | if DRM_LEGACY | |
44989ea3 | 421 | # leave here to list legacy drivers |
d92d9c3a | 422 | endif # DRM_LEGACY |
a33d42dd | 423 | |
9b6c80be RD |
424 | config DRM_EXPORT_FOR_TESTS |
425 | bool | |
426 | ||
341a0ffc HG |
427 | # Separate option because drm_panel_orientation_quirks.c is shared with fbdev |
428 | config DRM_PANEL_ORIENTATION_QUIRKS | |
429 | tristate | |
430 | ||
a33d42dd CW |
431 | config DRM_LIB_RANDOM |
432 | bool | |
433 | default n | |
a1a98689 HG |
434 | |
435 | config DRM_PRIVACY_SCREEN | |
436 | bool | |
437 | default n |