xref: /linux/drivers/gpu/drm/Kconfig (revision 5bdd5fbb35ab0fe21bf2263106f51c5bee466a07)
1#
2# Drm device configuration
3#
4# This driver provides support for the
5# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
6#
7menuconfig DRM
8	tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
9	depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
10	select DRM_PANEL_ORIENTATION_QUIRKS
11	select HDMI
12	select FB_CMDLINE
13	select I2C
14	select I2C_ALGOBIT
15	select DMA_SHARED_BUFFER
16	select SYNC_FILE
17	help
18	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
19	  introduced in XFree86 4.0. If you say Y here, you need to select
20	  the module that's right for your graphics card from the list below.
21	  These modules provide support for synchronization, security, and
22	  DMA transfers. Please see <http://dri.sourceforge.net/> for more
23	  details.  You should also select and configure AGP
24	  (/dev/agpgart) support if it is available for your platform.
25
26config DRM_MIPI_DSI
27	bool
28	depends on DRM
29
30config DRM_DP_AUX_CHARDEV
31	bool "DRM DP AUX Interface"
32	depends on DRM
33	help
34	  Choose this option to enable a /dev/drm_dp_auxN node that allows to
35	  read and write values to arbitrary DPCD registers on the DP aux
36	  channel.
37
38config DRM_DEBUG_MM
39	bool "Insert extra checks and debug info into the DRM range managers"
40	default n
41	depends on DRM=y
42	depends on STACKTRACE_SUPPORT
43	select STACKDEPOT
44	help
45	  Enable allocation tracking of memory manager and leak detection on
46	  shutdown.
47
48	  Recommended for driver developers only.
49
50	  If in doubt, say "N".
51
52config DRM_DEBUG_SELFTEST
53	tristate "kselftests for DRM"
54	depends on DRM
55	depends on DEBUG_KERNEL
56	select PRIME_NUMBERS
57	select DRM_LIB_RANDOM
58	select DRM_KMS_HELPER
59	default n
60	help
61	  This option provides kernel modules that can be used to run
62	  various selftests on parts of the DRM api. This option is not
63	  useful for distributions or general kernels, but only for kernel
64	  developers working on DRM and associated drivers.
65
66	  If in doubt, say "N".
67
68config DRM_KMS_HELPER
69	tristate
70	depends on DRM
71	help
72	  CRTC helpers for KMS drivers.
73
74config DRM_KMS_FB_HELPER
75	bool
76	depends on DRM_KMS_HELPER
77	select FB
78	select FRAMEBUFFER_CONSOLE if !EXPERT
79	select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
80	select FB_SYS_FOPS
81	select FB_SYS_FILLRECT
82	select FB_SYS_COPYAREA
83	select FB_SYS_IMAGEBLIT
84	select FB_CFB_FILLRECT
85	select FB_CFB_COPYAREA
86	select FB_CFB_IMAGEBLIT
87	select FB_DEFERRED_IO
88	help
89	  FBDEV helpers for KMS drivers.
90
91config DRM_FBDEV_EMULATION
92	bool "Enable legacy fbdev support for your modesetting driver"
93	depends on DRM
94	select DRM_KMS_HELPER
95	select DRM_KMS_FB_HELPER
96	default y
97	help
98	  Choose this option if you have a need for the legacy fbdev
99	  support. Note that this support also provides the linux console
100	  support on top of your modesetting driver.
101
102	  If in doubt, say "Y".
103
104config DRM_FBDEV_OVERALLOC
105	int "Overallocation of the fbdev buffer"
106	depends on DRM_FBDEV_EMULATION
107	default 100
108	help
109	  Defines the fbdev buffer overallocation in percent. Default
110	  is 100. Typical values for double buffering will be 200,
111	  triple buffering 300.
112
113config DRM_LOAD_EDID_FIRMWARE
114	bool "Allow to specify an EDID data set instead of probing for it"
115	depends on DRM
116	help
117	  Say Y here, if you want to use EDID data to be loaded from the
118	  /lib/firmware directory or one of the provided built-in
119	  data sets. This may be necessary, if the graphics adapter or
120	  monitor are unable to provide appropriate EDID data. Since this
121	  feature is provided as a workaround for broken hardware, the
122	  default case is N. Details and instructions how to build your own
123	  EDID data are given in Documentation/EDID/HOWTO.txt.
124
125config DRM_TTM
126	tristate
127	depends on DRM && MMU
128	help
129	  GPU memory management subsystem for devices with multiple
130	  GPU memory types. Will be enabled automatically if a device driver
131	  uses it.
132
133config DRM_GEM_CMA_HELPER
134	bool
135	depends on DRM
136	help
137	  Choose this if you need the GEM CMA helper functions
138
139config DRM_KMS_CMA_HELPER
140	bool
141	depends on DRM
142	select DRM_GEM_CMA_HELPER
143	select DRM_KMS_FB_HELPER
144	select FB_SYS_FILLRECT
145	select FB_SYS_COPYAREA
146	select FB_SYS_IMAGEBLIT
147	help
148	  Choose this if you need the KMS CMA helper functions
149
150config DRM_VM
151	bool
152	depends on DRM && MMU
153
154config DRM_SCHED
155	tristate
156	depends on DRM
157
158source "drivers/gpu/drm/i2c/Kconfig"
159
160source "drivers/gpu/drm/arm/Kconfig"
161
162config DRM_RADEON
163	tristate "ATI Radeon"
164	depends on DRM && PCI && MMU
165	select FW_LOADER
166        select DRM_KMS_HELPER
167        select DRM_TTM
168	select POWER_SUPPLY
169	select HWMON
170	select BACKLIGHT_CLASS_DEVICE
171	select BACKLIGHT_LCD_SUPPORT
172	select INTERVAL_TREE
173	help
174	  Choose this option if you have an ATI Radeon graphics card.  There
175	  are both PCI and AGP versions.  You don't need to choose this to
176	  run the Radeon in plain VGA mode.
177
178	  If M is selected, the module will be called radeon.
179
180source "drivers/gpu/drm/radeon/Kconfig"
181
182config DRM_AMDGPU
183	tristate "AMD GPU"
184	depends on DRM && PCI && MMU
185	select FW_LOADER
186        select DRM_KMS_HELPER
187	select DRM_SCHED
188        select DRM_TTM
189	select POWER_SUPPLY
190	select HWMON
191	select BACKLIGHT_CLASS_DEVICE
192	select BACKLIGHT_LCD_SUPPORT
193	select INTERVAL_TREE
194	select CHASH
195	help
196	  Choose this option if you have a recent AMD Radeon graphics card.
197
198	  If M is selected, the module will be called amdgpu.
199
200source "drivers/gpu/drm/amd/amdgpu/Kconfig"
201
202source "drivers/gpu/drm/amd/lib/Kconfig"
203
204source "drivers/gpu/drm/nouveau/Kconfig"
205
206source "drivers/gpu/drm/i915/Kconfig"
207
208config DRM_VGEM
209	tristate "Virtual GEM provider"
210	depends on DRM
211	help
212	  Choose this option to get a virtual graphics memory manager,
213	  as used by Mesa's software renderer for enhanced performance.
214	  If M is selected the module will be called vgem.
215
216
217source "drivers/gpu/drm/exynos/Kconfig"
218
219source "drivers/gpu/drm/rockchip/Kconfig"
220
221source "drivers/gpu/drm/vmwgfx/Kconfig"
222
223source "drivers/gpu/drm/gma500/Kconfig"
224
225source "drivers/gpu/drm/udl/Kconfig"
226
227source "drivers/gpu/drm/ast/Kconfig"
228
229source "drivers/gpu/drm/mgag200/Kconfig"
230
231source "drivers/gpu/drm/cirrus/Kconfig"
232
233source "drivers/gpu/drm/armada/Kconfig"
234
235source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
236
237source "drivers/gpu/drm/rcar-du/Kconfig"
238
239source "drivers/gpu/drm/shmobile/Kconfig"
240
241source "drivers/gpu/drm/sun4i/Kconfig"
242
243source "drivers/gpu/drm/omapdrm/Kconfig"
244
245source "drivers/gpu/drm/tilcdc/Kconfig"
246
247source "drivers/gpu/drm/qxl/Kconfig"
248
249source "drivers/gpu/drm/bochs/Kconfig"
250
251source "drivers/gpu/drm/virtio/Kconfig"
252
253source "drivers/gpu/drm/msm/Kconfig"
254
255source "drivers/gpu/drm/fsl-dcu/Kconfig"
256
257source "drivers/gpu/drm/tegra/Kconfig"
258
259source "drivers/gpu/drm/stm/Kconfig"
260
261source "drivers/gpu/drm/panel/Kconfig"
262
263source "drivers/gpu/drm/bridge/Kconfig"
264
265source "drivers/gpu/drm/sti/Kconfig"
266
267source "drivers/gpu/drm/amd/amdkfd/Kconfig"
268
269source "drivers/gpu/drm/imx/Kconfig"
270
271source "drivers/gpu/drm/v3d/Kconfig"
272
273source "drivers/gpu/drm/vc4/Kconfig"
274
275source "drivers/gpu/drm/etnaviv/Kconfig"
276
277source "drivers/gpu/drm/arc/Kconfig"
278
279source "drivers/gpu/drm/hisilicon/Kconfig"
280
281source "drivers/gpu/drm/mediatek/Kconfig"
282
283source "drivers/gpu/drm/zte/Kconfig"
284
285source "drivers/gpu/drm/mxsfb/Kconfig"
286
287source "drivers/gpu/drm/meson/Kconfig"
288
289source "drivers/gpu/drm/tinydrm/Kconfig"
290
291source "drivers/gpu/drm/pl111/Kconfig"
292
293source "drivers/gpu/drm/tve200/Kconfig"
294
295source "drivers/gpu/drm/xen/Kconfig"
296
297# Keep legacy drivers last
298
299menuconfig DRM_LEGACY
300	bool "Enable legacy drivers (DANGEROUS)"
301	depends on DRM && MMU
302	select DRM_VM
303	help
304	  Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous
305	  APIs to user-space, which can be used to circumvent access
306	  restrictions and other security measures. For backwards compatibility
307	  those drivers are still available, but their use is highly
308	  inadvisable and might harm your system.
309
310	  You are recommended to use the safe modeset-only drivers instead, and
311	  perform 3D emulation in user-space.
312
313	  Unless you have strong reasons to go rogue, say "N".
314
315if DRM_LEGACY
316
317config DRM_TDFX
318	tristate "3dfx Banshee/Voodoo3+"
319	depends on DRM && PCI
320	help
321	  Choose this option if you have a 3dfx Banshee or Voodoo3 (or later),
322	  graphics card.  If M is selected, the module will be called tdfx.
323
324config DRM_R128
325	tristate "ATI Rage 128"
326	depends on DRM && PCI
327	select FW_LOADER
328	help
329	  Choose this option if you have an ATI Rage 128 graphics card.  If M
330	  is selected, the module will be called r128.  AGP support for
331	  this card is strongly suggested (unless you have a PCI version).
332
333config DRM_I810
334	tristate "Intel I810"
335	# !PREEMPT because of missing ioctl locking
336	depends on DRM && AGP && AGP_INTEL && (!PREEMPT || BROKEN)
337	help
338	  Choose this option if you have an Intel I810 graphics card.  If M is
339	  selected, the module will be called i810.  AGP support is required
340	  for this driver to work.
341
342config DRM_MGA
343	tristate "Matrox g200/g400"
344	depends on DRM && PCI
345	select FW_LOADER
346	help
347	  Choose this option if you have a Matrox G200, G400 or G450 graphics
348	  card.  If M is selected, the module will be called mga.  AGP
349	  support is required for this driver to work.
350
351config DRM_SIS
352	tristate "SiS video cards"
353	depends on DRM && AGP
354	depends on FB_SIS || FB_SIS=n
355	help
356	  Choose this option if you have a SiS 630 or compatible video
357	  chipset. If M is selected the module will be called sis. AGP
358	  support is required for this driver to work.
359
360config DRM_VIA
361	tristate "Via unichrome video cards"
362	depends on DRM && PCI
363	help
364	  Choose this option if you have a Via unichrome or compatible video
365	  chipset. If M is selected the module will be called via.
366
367config DRM_SAVAGE
368	tristate "Savage video cards"
369	depends on DRM && PCI
370	help
371	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
372	  chipset. If M is selected the module will be called savage.
373
374endif # DRM_LEGACY
375
376# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
377config DRM_PANEL_ORIENTATION_QUIRKS
378	tristate
379
380config DRM_LIB_RANDOM
381	bool
382	default n
383