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 && PRINTK
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_RAS
134 bool "DRM RAS support"
135 depends on DRM
136 depends on NET
137 help
138 Enables the DRM RAS (Reliability, Availability and Serviceability)
139 support for DRM drivers. This provides a Generic Netlink interface
140 for error reporting and queries.
141 If in doubt, say "N".
142
143config DRM_DEBUG_DP_MST_TOPOLOGY_REFS
144 bool "Enable refcount backtrace history in the DP MST helpers"
145 depends on STACKTRACE_SUPPORT
146 select STACKDEPOT
147 select DRM_KMS_HELPER
148 depends on DEBUG_KERNEL
149 depends on EXPERT
150 help
151 Enables debug tracing for topology refs in DRM's DP MST helpers. A
152 history of each topology reference/dereference will be printed to the
153 kernel log once a port or branch device's topology refcount reaches 0.
154
155 This has the potential to use a lot of memory and print some very
156 large kernel messages. If in doubt, say "N".
157
158config DRM_DEBUG_MODESET_LOCK
159 bool "Enable backtrace history for lock contention"
160 depends on STACKTRACE_SUPPORT
161 depends on DEBUG_KERNEL
162 depends on EXPERT
163 select STACKDEPOT
164 default y if DEBUG_WW_MUTEX_SLOWPATH
165 help
166 Enable debug tracing of failures to gracefully handle drm modeset lock
167 contention. A history of each drm modeset lock path hitting -EDEADLK
168 will be saved until gracefully handled, and the backtrace will be
169 printed when attempting to lock a contended lock.
170
171 If in doubt, say "N".
172
173config DRM_CLIENT
174 bool
175 depends on DRM
176 help
177 Enables support for DRM clients. DRM drivers that need
178 struct drm_client_dev and its interfaces should select this
179 option. Drivers that support the default clients should
180 select DRM_CLIENT_SELECTION instead.
181
182source "drivers/gpu/drm/clients/Kconfig"
183
184config DRM_LOAD_EDID_FIRMWARE
185 bool "Allow to specify an EDID data set instead of probing for it"
186 depends on DRM
187 help
188 Say Y here, if you want to use EDID data to be loaded from the
189 /lib/firmware directory or one of the provided built-in
190 data sets. This may be necessary, if the graphics adapter or
191 monitor are unable to provide appropriate EDID data. Since this
192 feature is provided as a workaround for broken hardware, the
193 default case is N. Details and instructions how to build your own
194 EDID data are given in Documentation/admin-guide/edid.rst.
195
196source "drivers/gpu/drm/display/Kconfig"
197
198config DRM_TTM
199 tristate
200 depends on DRM && MMU
201 select SHMEM
202 help
203 GPU memory management subsystem for devices with multiple
204 GPU memory types. Will be enabled automatically if a device driver
205 uses it.
206
207config DRM_EXEC
208 tristate
209 depends on DRM
210 help
211 Execution context for command submissions
212
213config DRM_GPUVM
214 tristate
215 depends on DRM
216 select DRM_EXEC
217 help
218 GPU-VM representation providing helpers to manage a GPUs virtual
219 address space
220
221config DRM_GPUSVM
222 tristate
223 depends on DRM
224 select HMM_MIRROR
225 select MMU_NOTIFIER
226 help
227 GPU-SVM representation providing helpers to manage a GPUs shared
228 virtual memory
229
230config DRM_BUDDY
231 tristate
232 depends on DRM
233 select GPU_BUDDY
234 help
235 A page based buddy allocator
236
237config DRM_VRAM_HELPER
238 tristate
239 depends on DRM
240 help
241 Helpers for VRAM memory management
242
243config DRM_TTM_HELPER
244 tristate
245 depends on DRM
246 select DRM_TTM
247 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
248 select FB_CORE if DRM_FBDEV_EMULATION
249 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
250 help
251 Helpers for ttm-based gem objects
252
253config DRM_GEM_DMA_HELPER
254 tristate
255 depends on DRM
256 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
257 select FB_CORE if DRM_FBDEV_EMULATION
258 select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
259 help
260 Choose this if you need the GEM DMA helper functions
261
262config DRM_GEM_SHMEM_HELPER
263 tristate
264 depends on DRM && MMU
265 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
266 select FB_CORE if DRM_FBDEV_EMULATION
267 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
268 help
269 Choose this if you need the GEM shmem helper functions
270
271config RUST_DRM_GEM_SHMEM_HELPER
272 bool
273 depends on DRM && MMU
274 select DRM_GEM_SHMEM_HELPER
275 help
276 Choose this if you need the GEM shmem helper functions In Rust
277
278config DRM_SUBALLOC_HELPER
279 tristate
280 depends on DRM
281
282config DRM_SCHED
283 tristate
284 depends on DRM
285
286# Separate option as not all DRM drivers use it
287config DRM_PANEL_BACKLIGHT_QUIRKS
288 tristate
289
290config DRM_PRIVACY_SCREEN
291 bool
292 default n
293
294# DRM driver Kconfig files, sorted
295source "drivers/gpu/drm/adp/Kconfig"
296source "drivers/gpu/drm/amd/amdgpu/Kconfig"
297source "drivers/gpu/drm/arm/Kconfig"
298source "drivers/gpu/drm/armada/Kconfig"
299source "drivers/gpu/drm/aspeed/Kconfig"
300source "drivers/gpu/drm/ast/Kconfig"
301source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
302source "drivers/gpu/drm/bridge/Kconfig"
303source "drivers/gpu/drm/etnaviv/Kconfig"
304source "drivers/gpu/drm/exynos/Kconfig"
305source "drivers/gpu/drm/fsl-dcu/Kconfig"
306source "drivers/gpu/drm/gma500/Kconfig"
307source "drivers/gpu/drm/gud/Kconfig"
308source "drivers/gpu/drm/hisilicon/Kconfig"
309source "drivers/gpu/drm/hyperv/Kconfig"
310source "drivers/gpu/drm/i915/Kconfig"
311source "drivers/gpu/drm/imagination/Kconfig"
312source "drivers/gpu/drm/imx/Kconfig"
313source "drivers/gpu/drm/ingenic/Kconfig"
314source "drivers/gpu/drm/kmb/Kconfig"
315source "drivers/gpu/drm/lima/Kconfig"
316source "drivers/gpu/drm/logicvc/Kconfig"
317source "drivers/gpu/drm/loongson/Kconfig"
318source "drivers/gpu/drm/mcde/Kconfig"
319source "drivers/gpu/drm/mediatek/Kconfig"
320source "drivers/gpu/drm/meson/Kconfig"
321source "drivers/gpu/drm/mgag200/Kconfig"
322source "drivers/gpu/drm/msm/Kconfig"
323source "drivers/gpu/drm/mxsfb/Kconfig"
324source "drivers/gpu/drm/nouveau/Kconfig"
325source "drivers/gpu/drm/nova/Kconfig"
326source "drivers/gpu/drm/omapdrm/Kconfig"
327source "drivers/gpu/drm/panel/Kconfig"
328source "drivers/gpu/drm/panfrost/Kconfig"
329source "drivers/gpu/drm/panthor/Kconfig"
330source "drivers/gpu/drm/pl111/Kconfig"
331source "drivers/gpu/drm/qxl/Kconfig"
332source "drivers/gpu/drm/radeon/Kconfig"
333source "drivers/gpu/drm/renesas/Kconfig"
334source "drivers/gpu/drm/rockchip/Kconfig"
335source "drivers/gpu/drm/sitronix/Kconfig"
336source "drivers/gpu/drm/solomon/Kconfig"
337source "drivers/gpu/drm/sprd/Kconfig"
338source "drivers/gpu/drm/sti/Kconfig"
339source "drivers/gpu/drm/stm/Kconfig"
340source "drivers/gpu/drm/sun4i/Kconfig"
341source "drivers/gpu/drm/sysfb/Kconfig"
342source "drivers/gpu/drm/tegra/Kconfig"
343source "drivers/gpu/drm/tidss/Kconfig"
344source "drivers/gpu/drm/tilcdc/Kconfig"
345source "drivers/gpu/drm/tiny/Kconfig"
346source "drivers/gpu/drm/tve200/Kconfig"
347source "drivers/gpu/drm/tyr/Kconfig"
348source "drivers/gpu/drm/udl/Kconfig"
349source "drivers/gpu/drm/v3d/Kconfig"
350source "drivers/gpu/drm/vboxvideo/Kconfig"
351source "drivers/gpu/drm/vc4/Kconfig"
352source "drivers/gpu/drm/verisilicon/Kconfig"
353source "drivers/gpu/drm/vgem/Kconfig"
354source "drivers/gpu/drm/virtio/Kconfig"
355source "drivers/gpu/drm/vkms/Kconfig"
356source "drivers/gpu/drm/vmwgfx/Kconfig"
357source "drivers/gpu/drm/xe/Kconfig"
358source "drivers/gpu/drm/xen/Kconfig"
359source "drivers/gpu/drm/xlnx/Kconfig"
360
361endif
362
363# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
364config DRM_PANEL_ORIENTATION_QUIRKS
365 tristate