Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
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#
8menuconfig DRM
9 tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
10 depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
11 select DRM_PANEL_ORIENTATION_QUIRKS
12 select HDMI
13 select I2C
14 select DMA_SHARED_BUFFER
15 select SYNC_FILE
16# gallium uses SYS_kcmp for os_same_file_description() to de-duplicate
17# device and dmabuf fd. Let's make sure that is available for our userspace.
18 select KCMP
19 select VIDEO
20 help
21 Kernel-level support for the Direct Rendering Infrastructure (DRI)
22 introduced in XFree86 4.0. If you say Y here, you need to select
23 the module that's right for your graphics card from the list below.
24 These modules provide support for synchronization, security, and
25 DMA transfers. Please see <http://dri.sourceforge.net/> for more
26 details. You should also select and configure AGP
27 (/dev/agpgart) support if it is available for your platform.
28
29menu "DRM debugging options"
30depends on DRM
31source "drivers/gpu/drm/Kconfig.debug"
32endmenu
33
34if DRM
35
36config DRM_MIPI_DBI
37 tristate
38 depends on DRM
39 select DRM_KMS_HELPER
40
41config DRM_MIPI_DSI
42 bool
43 depends on DRM
44
45config DRM_KMS_HELPER
46 tristate
47 depends on DRM
48 select FB_CORE if DRM_FBDEV_EMULATION
49 help
50 CRTC helpers for KMS drivers.
51
52config DRM_DRAW
53 bool
54 depends on DRM
55
56config DRM_PANIC
57 bool "Display a user-friendly message when a kernel panic occurs"
58 depends on DRM
59 select FONT_SUPPORT
60 select DRM_DRAW
61 help
62 Enable a drm panic handler, which will display a user-friendly message
63 when a kernel panic occurs. It's useful when using a user-space
64 console instead of fbcon.
65 It will only work if your graphic driver supports this feature.
66 To support Hi-DPI Display, you can enable bigger fonts like
67 FONT_TER16x32
68
69config DRM_PANIC_FOREGROUND_COLOR
70 hex "Drm panic screen foreground color, in RGB"
71 depends on DRM_PANIC
72 default 0xffffff
73
74config DRM_PANIC_BACKGROUND_COLOR
75 hex "Drm panic screen background color, in RGB"
76 depends on DRM_PANIC
77 default 0x000000
78
79config DRM_PANIC_DEBUG
80 bool "Add a debug fs entry to trigger drm_panic"
81 depends on DRM_PANIC && DEBUG_FS
82 help
83 Add dri/[device]/drm_panic_plane_x in the kernel debugfs, to force the
84 panic handler to write the panic message to this plane scanout buffer.
85 This is unsafe and should not be enabled on a production build.
86 If in doubt, say "N".
87
88config DRM_PANIC_SCREEN
89 string "Panic screen formatter"
90 default "user"
91 depends on DRM_PANIC
92 help
93 This option enable to choose what will be displayed when a kernel
94 panic occurs. You can choose between "user", a short message telling
95 the user to reboot the system, or "kmsg" which will display the last
96 lines of kmsg.
97 This can also be overridden by drm.panic_screen=xxxx kernel parameter
98 or by writing to /sys/module/drm/parameters/panic_screen sysfs entry
99 Default is "user"
100
101config DRM_PANIC_SCREEN_QR_CODE
102 bool "Add a panic screen with a QR code"
103 depends on DRM_PANIC && RUST
104 select ZLIB_DEFLATE
105 help
106 This option adds a QR code generator, and a panic screen with a QR
107 code. The QR code will contain the last lines of kmsg and other debug
108 information. This should be easier for the user to report a kernel
109 panic, with all debug information available.
110 To use this panic screen, also set DRM_PANIC_SCREEN to "qr_code"
111
112config DRM_PANIC_SCREEN_QR_CODE_URL
113 string "Base URL of the QR code in the panic screen"
114 depends on DRM_PANIC_SCREEN_QR_CODE
115 help
116 This option sets the base URL to report the kernel panic. If it's set
117 the QR code will contain the URL and the kmsg compressed with zlib as
118 a URL parameter. If it's empty, the QR code will contain the kmsg as
119 uncompressed text only.
120 There is a demo code in javascript, to decode and uncompress the kmsg
121 data from the URL parameter at https://github.com/kdj0c/panic_report
122
123config DRM_PANIC_SCREEN_QR_VERSION
124 int "Maximum version (size) of the QR code."
125 depends on DRM_PANIC_SCREEN_QR_CODE
126 default 40
127 help
128 This option limits the version (or size) of the QR code. QR code
129 version ranges from Version 1 (21x21) to Version 40 (177x177).
130 Smaller QR code are easier to read, but will contain less debugging
131 data. Default is 40.
132
133config DRM_DEBUG_DP_MST_TOPOLOGY_REFS
134 bool "Enable refcount backtrace history in the DP MST helpers"
135 depends on STACKTRACE_SUPPORT
136 select STACKDEPOT
137 select DRM_KMS_HELPER
138 depends on DEBUG_KERNEL
139 depends on EXPERT
140 help
141 Enables debug tracing for topology refs in DRM's DP MST helpers. A
142 history of each topology reference/dereference will be printed to the
143 kernel log once a port or branch device's topology refcount reaches 0.
144
145 This has the potential to use a lot of memory and print some very
146 large kernel messages. If in doubt, say "N".
147
148config DRM_DEBUG_MODESET_LOCK
149 bool "Enable backtrace history for lock contention"
150 depends on STACKTRACE_SUPPORT
151 depends on DEBUG_KERNEL
152 depends on EXPERT
153 select STACKDEPOT
154 default y if DEBUG_WW_MUTEX_SLOWPATH
155 help
156 Enable debug tracing of failures to gracefully handle drm modeset lock
157 contention. A history of each drm modeset lock path hitting -EDEADLK
158 will be saved until gracefully handled, and the backtrace will be
159 printed when attempting to lock a contended lock.
160
161 If in doubt, say "N".
162
163config DRM_CLIENT
164 bool
165 depends on DRM
166 help
167 Enables support for DRM clients. DRM drivers that need
168 struct drm_client_dev and its interfaces should select this
169 option. Drivers that support the default clients should
170 select DRM_CLIENT_SELECTION instead.
171
172source "drivers/gpu/drm/clients/Kconfig"
173
174config DRM_LOAD_EDID_FIRMWARE
175 bool "Allow to specify an EDID data set instead of probing for it"
176 depends on DRM
177 help
178 Say Y here, if you want to use EDID data to be loaded from the
179 /lib/firmware directory or one of the provided built-in
180 data sets. This may be necessary, if the graphics adapter or
181 monitor are unable to provide appropriate EDID data. Since this
182 feature is provided as a workaround for broken hardware, the
183 default case is N. Details and instructions how to build your own
184 EDID data are given in Documentation/admin-guide/edid.rst.
185
186source "drivers/gpu/drm/display/Kconfig"
187
188config DRM_TTM
189 tristate
190 depends on DRM && MMU
191 select SHMEM
192 help
193 GPU memory management subsystem for devices with multiple
194 GPU memory types. Will be enabled automatically if a device driver
195 uses it.
196
197config DRM_EXEC
198 tristate
199 depends on DRM
200 help
201 Execution context for command submissions
202
203config DRM_GPUVM
204 tristate
205 depends on DRM
206 select DRM_EXEC
207 help
208 GPU-VM representation providing helpers to manage a GPUs virtual
209 address space
210
211config DRM_GPUSVM
212 tristate
213 depends on DRM && DEVICE_PRIVATE
214 select HMM_MIRROR
215 select MMU_NOTIFIER
216 help
217 GPU-SVM representation providing helpers to manage a GPUs shared
218 virtual memory
219
220config DRM_BUDDY
221 tristate
222 depends on DRM
223 help
224 A page based buddy allocator
225
226config DRM_VRAM_HELPER
227 tristate
228 depends on DRM
229 help
230 Helpers for VRAM memory management
231
232config DRM_TTM_HELPER
233 tristate
234 depends on DRM
235 select DRM_TTM
236 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
237 select FB_CORE if DRM_FBDEV_EMULATION
238 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
239 help
240 Helpers for ttm-based gem objects
241
242config DRM_GEM_DMA_HELPER
243 tristate
244 depends on DRM
245 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
246 select FB_CORE if DRM_FBDEV_EMULATION
247 select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
248 help
249 Choose this if you need the GEM DMA helper functions
250
251config DRM_GEM_SHMEM_HELPER
252 tristate
253 depends on DRM && MMU
254 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
255 select FB_CORE if DRM_FBDEV_EMULATION
256 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
257 help
258 Choose this if you need the GEM shmem helper functions
259
260config DRM_SUBALLOC_HELPER
261 tristate
262 depends on DRM
263
264config DRM_SCHED
265 tristate
266 depends on DRM
267
268source "drivers/gpu/drm/sysfb/Kconfig"
269
270source "drivers/gpu/drm/arm/Kconfig"
271
272source "drivers/gpu/drm/radeon/Kconfig"
273
274source "drivers/gpu/drm/amd/amdgpu/Kconfig"
275
276source "drivers/gpu/drm/nouveau/Kconfig"
277
278source "drivers/gpu/drm/nova/Kconfig"
279
280source "drivers/gpu/drm/i915/Kconfig"
281
282source "drivers/gpu/drm/xe/Kconfig"
283
284source "drivers/gpu/drm/kmb/Kconfig"
285
286config DRM_VGEM
287 tristate "Virtual GEM provider"
288 depends on DRM && MMU
289 select DRM_GEM_SHMEM_HELPER
290 help
291 Choose this option to get a virtual graphics memory manager,
292 as used by Mesa's software renderer for enhanced performance.
293 If M is selected the module will be called vgem.
294
295source "drivers/gpu/drm/vkms/Kconfig"
296
297source "drivers/gpu/drm/exynos/Kconfig"
298
299source "drivers/gpu/drm/rockchip/Kconfig"
300
301source "drivers/gpu/drm/vmwgfx/Kconfig"
302
303source "drivers/gpu/drm/gma500/Kconfig"
304
305source "drivers/gpu/drm/udl/Kconfig"
306
307source "drivers/gpu/drm/ast/Kconfig"
308
309source "drivers/gpu/drm/mgag200/Kconfig"
310
311source "drivers/gpu/drm/armada/Kconfig"
312
313source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
314
315source "drivers/gpu/drm/renesas/Kconfig"
316
317source "drivers/gpu/drm/sun4i/Kconfig"
318
319source "drivers/gpu/drm/omapdrm/Kconfig"
320
321source "drivers/gpu/drm/tilcdc/Kconfig"
322
323source "drivers/gpu/drm/qxl/Kconfig"
324
325source "drivers/gpu/drm/virtio/Kconfig"
326
327source "drivers/gpu/drm/msm/Kconfig"
328
329source "drivers/gpu/drm/fsl-dcu/Kconfig"
330
331source "drivers/gpu/drm/tegra/Kconfig"
332
333source "drivers/gpu/drm/stm/Kconfig"
334
335source "drivers/gpu/drm/panel/Kconfig"
336
337source "drivers/gpu/drm/bridge/Kconfig"
338
339source "drivers/gpu/drm/sti/Kconfig"
340
341source "drivers/gpu/drm/imx/Kconfig"
342
343source "drivers/gpu/drm/ingenic/Kconfig"
344
345source "drivers/gpu/drm/v3d/Kconfig"
346
347source "drivers/gpu/drm/vc4/Kconfig"
348
349source "drivers/gpu/drm/loongson/Kconfig"
350
351source "drivers/gpu/drm/etnaviv/Kconfig"
352
353source "drivers/gpu/drm/hisilicon/Kconfig"
354
355source "drivers/gpu/drm/logicvc/Kconfig"
356
357source "drivers/gpu/drm/mediatek/Kconfig"
358
359source "drivers/gpu/drm/mxsfb/Kconfig"
360
361source "drivers/gpu/drm/meson/Kconfig"
362
363source "drivers/gpu/drm/tiny/Kconfig"
364
365source "drivers/gpu/drm/pl111/Kconfig"
366
367source "drivers/gpu/drm/tve200/Kconfig"
368
369source "drivers/gpu/drm/xen/Kconfig"
370
371source "drivers/gpu/drm/vboxvideo/Kconfig"
372
373source "drivers/gpu/drm/lima/Kconfig"
374
375source "drivers/gpu/drm/panfrost/Kconfig"
376
377source "drivers/gpu/drm/panthor/Kconfig"
378
379source "drivers/gpu/drm/aspeed/Kconfig"
380
381source "drivers/gpu/drm/mcde/Kconfig"
382
383source "drivers/gpu/drm/tidss/Kconfig"
384
385source "drivers/gpu/drm/adp/Kconfig"
386
387source "drivers/gpu/drm/xlnx/Kconfig"
388
389source "drivers/gpu/drm/gud/Kconfig"
390
391source "drivers/gpu/drm/sitronix/Kconfig"
392
393source "drivers/gpu/drm/solomon/Kconfig"
394
395source "drivers/gpu/drm/sprd/Kconfig"
396
397source "drivers/gpu/drm/imagination/Kconfig"
398
399source "drivers/gpu/drm/tyr/Kconfig"
400
401config DRM_HYPERV
402 tristate "DRM Support for Hyper-V synthetic video device"
403 depends on DRM && PCI && HYPERV_VMBUS
404 select DRM_CLIENT_SELECTION
405 select DRM_KMS_HELPER
406 select DRM_GEM_SHMEM_HELPER
407 help
408 This is a KMS driver for Hyper-V synthetic video device. Choose this
409 option if you would like to enable drm driver for Hyper-V virtual
410 machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so
411 that DRM driver is used by default.
412
413 If M is selected the module will be called hyperv_drm.
414
415# Separate option as not all DRM drivers use it
416config DRM_PANEL_BACKLIGHT_QUIRKS
417 tristate
418
419config DRM_LIB_RANDOM
420 bool
421 default n
422
423config DRM_PRIVACY_SCREEN
424 bool
425 default n
426
427endif
428
429# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
430config DRM_PANEL_ORIENTATION_QUIRKS
431 tristate