blob: 88e01e08e27923d83940078f9591ba16b4fe8e82 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
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#
Randy Dunlap179b0252007-10-16 01:29:39 -07007menuconfig DRM
Linus Torvalds1da177e2005-04-16 15:20:36 -07008 tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
Benjamin Gaignard62a0d982017-01-04 10:12:57 +01009 depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
Thierry Reding10a85122012-11-21 15:31:35 +010010 select HDMI
Chris Wilsoneaf99c72014-08-06 10:08:32 +020011 select FB_CMDLINE
Dave Airlie57a62972008-12-13 18:21:08 +100012 select I2C
13 select I2C_ALGOBIT
Dave Airlie32488772011-11-25 15:21:02 +000014 select DMA_SHARED_BUFFER
Gustavo Padovan96260142016-11-15 22:06:39 +090015 select SYNC_FILE
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 help
17 Kernel-level support for the Direct Rendering Infrastructure (DRI)
18 introduced in XFree86 4.0. If you say Y here, you need to select
19 the module that's right for your graphics card from the list below.
20 These modules provide support for synchronization, security, and
21 DMA transfers. Please see <http://dri.sourceforge.net/> for more
22 details. You should also select and configure AGP
Jordan Crousedcdb1672010-05-27 13:40:25 -060023 (/dev/agpgart) support if it is available for your platform.
Linus Torvalds1da177e2005-04-16 15:20:36 -070024
Andrzej Hajda068a0022013-12-04 16:35:12 +010025config DRM_MIPI_DSI
26 bool
27 depends on DRM
28
Rafael Antognollie94cb372016-01-21 15:10:19 -080029config DRM_DP_AUX_CHARDEV
30 bool "DRM DP AUX Interface"
31 depends on DRM
32 help
33 Choose this option to enable a /dev/drm_dp_auxN node that allows to
34 read and write values to arbitrary DPCD registers on the DP aux
35 channel.
36
Chris Wilson57056702016-10-31 09:08:06 +000037config DRM_DEBUG_MM
38 bool "Insert extra checks and debug info into the DRM range managers"
39 default n
Chris Wilsoncd456f82016-11-08 13:19:17 +000040 depends on DRM=y
Chris Wilson4b514e12016-11-09 14:39:06 +000041 depends on STACKTRACE_SUPPORT
Chris Wilson57056702016-10-31 09:08:06 +000042 select STACKDEPOT
43 help
44 Enable allocation tracking of memory manager and leak detection on
45 shutdown.
46
47 Recommended for driver developers only.
48
49 If in doubt, say "N".
50
Chris Wilson50f00332016-12-22 08:36:09 +000051config DRM_DEBUG_MM_SELFTEST
52 tristate "kselftests for DRM range manager (struct drm_mm)"
53 depends on DRM
54 depends on DEBUG_KERNEL
55 select PRIME_NUMBERS
56 select DRM_LIB_RANDOM
57 default n
58 help
59 This option provides a kernel module that can be used to test
60 the DRM range manager (drm_mm) and its API. This option is not
61 useful for distributions or general kernels, but only for kernel
62 developers working on DRM and associated drivers.
63
64 If in doubt, say "N".
65
Dave Airlie6fcefd52009-09-08 11:08:32 +100066config DRM_KMS_HELPER
Dave Airlie13a81952009-09-07 15:45:33 +100067 tristate
68 depends on DRM
Daniel Vetter92b6f892013-10-08 17:44:47 +020069 help
70 CRTC helpers for KMS drivers.
71
72config DRM_KMS_FB_HELPER
73 bool
74 depends on DRM_KMS_HELPER
Dave Airlie13a81952009-09-07 15:45:33 +100075 select FB
David Rientjes6a108a12011-01-20 14:44:16 -080076 select FRAMEBUFFER_CONSOLE if !EXPERT
Dave Airliebf5192e2011-04-22 07:51:33 +100077 select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
Archit Tanejacbb1a822015-07-31 16:21:41 +053078 select FB_SYS_FOPS
Archit Taneja742547b2015-07-31 16:21:42 +053079 select FB_SYS_FILLRECT
80 select FB_SYS_COPYAREA
81 select FB_SYS_IMAGEBLIT
82 select FB_CFB_FILLRECT
83 select FB_CFB_COPYAREA
84 select FB_CFB_IMAGEBLIT
Noralf Trønneseaa434d2016-04-28 17:18:33 +020085 select FB_DEFERRED_IO
Dave Airlie13a81952009-09-07 15:45:33 +100086 help
Daniel Vetter92b6f892013-10-08 17:44:47 +020087 FBDEV helpers for KMS drivers.
Dave Airlie13a81952009-09-07 15:45:33 +100088
Archit Tanejaa03fdcb2015-08-05 12:28:57 +053089config DRM_FBDEV_EMULATION
90 bool "Enable legacy fbdev support for your modesetting driver"
91 depends on DRM
92 select DRM_KMS_HELPER
93 select DRM_KMS_FB_HELPER
94 default y
95 help
96 Choose this option if you have a need for the legacy fbdev
97 support. Note that this support also provides the linux console
98 support on top of your modesetting driver.
99
100 If in doubt, say "Y".
101
Carsten Emdeda0df922012-03-18 22:37:33 +0100102config DRM_LOAD_EDID_FIRMWARE
103 bool "Allow to specify an EDID data set instead of probing for it"
104 depends on DRM_KMS_HELPER
105 help
106 Say Y here, if you want to use EDID data to be loaded from the
107 /lib/firmware directory or one of the provided built-in
108 data sets. This may be necessary, if the graphics adapter or
109 monitor are unable to provide appropriate EDID data. Since this
110 feature is provided as a workaround for broken hardware, the
111 default case is N. Details and instructions how to build your own
112 EDID data are given in Documentation/EDID/HOWTO.txt.
113
Thomas Hellstromba4e7d92009-06-10 15:20:19 +0200114config DRM_TTM
Jerome Glisse771fe6b2009-06-05 14:42:42 +0200115 tristate
Benjamin Gaignard62a0d982017-01-04 10:12:57 +0100116 depends on DRM && MMU
Thomas Hellstromba4e7d92009-06-10 15:20:19 +0200117 help
118 GPU memory management subsystem for devices with multiple
119 GPU memory types. Will be enabled automatically if a device driver
120 uses it.
121
Sascha Hauerb9d47452012-06-27 15:30:18 +0200122config DRM_GEM_CMA_HELPER
123 bool
Christoph Hellwige1c7e322016-01-20 15:02:05 -0800124 depends on DRM
Sascha Hauerb9d47452012-06-27 15:30:18 +0200125 help
126 Choose this if you need the GEM CMA helper functions
127
Lars-Peter Clausen2e3b3c42012-07-02 16:37:47 +0200128config DRM_KMS_CMA_HELPER
129 bool
Christoph Hellwige1c7e322016-01-20 15:02:05 -0800130 depends on DRM
Lars-Peter Clausen2e3b3c42012-07-02 16:37:47 +0200131 select DRM_GEM_CMA_HELPER
Daniel Vetter92b6f892013-10-08 17:44:47 +0200132 select DRM_KMS_FB_HELPER
Lars-Peter Clausen2e3b3c42012-07-02 16:37:47 +0200133 select FB_SYS_FILLRECT
134 select FB_SYS_COPYAREA
135 select FB_SYS_IMAGEBLIT
136 help
137 Choose this if you need the KMS CMA helper functions
138
Benjamin Gaignard99c48e12017-01-04 10:12:56 +0100139config DRM_VM
140 bool
Benjamin Gaignard7e53c282017-01-12 09:57:36 +0100141 depends on DRM && MMU
Benjamin Gaignard99c48e12017-01-04 10:12:56 +0100142
Rob Clark6504d0d2013-01-24 21:46:07 +0000143source "drivers/gpu/drm/i2c/Kconfig"
144
Liviu Dudau8e22d792015-04-02 19:48:39 +0100145source "drivers/gpu/drm/arm/Kconfig"
146
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147config DRM_RADEON
148 tristate "ATI Radeon"
Benjamin Gaignard011cda52017-01-07 12:39:11 +0100149 depends on DRM && PCI && MMU
Ben Hutchings70967ab2009-08-29 14:53:51 +0100150 select FW_LOADER
Dave Airliea0cdc642009-09-08 11:09:50 +1000151 select DRM_KMS_HELPER
152 select DRM_TTM
Dave Airlie5d9b7e22010-05-21 15:41:20 +1000153 select POWER_SUPPLY
Alex Deucher21a81222010-07-02 12:58:16 -0400154 select HWMON
Christian König14adc892013-01-21 13:58:46 +0100155 select BACKLIGHT_CLASS_DEVICE
Thierry Reding33610522015-08-14 12:50:11 +0200156 select BACKLIGHT_LCD_SUPPORT
Alex Deucher0aea5e42014-07-30 11:49:56 -0400157 select INTERVAL_TREE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700158 help
159 Choose this option if you have an ATI Radeon graphics card. There
160 are both PCI and AGP versions. You don't need to choose this to
Adrian Bunk7b9af342006-03-20 20:23:13 +0100161 run the Radeon in plain VGA mode.
Dave Airliebc5f4522007-11-05 12:50:58 +1000162
Linus Torvalds1da177e2005-04-16 15:20:36 -0700163 If M is selected, the module will be called radeon.
164
Dave Airlief71d0182010-02-01 11:35:47 +1000165source "drivers/gpu/drm/radeon/Kconfig"
166
Alex Deucherd38ceaf2015-04-20 16:55:21 -0400167config DRM_AMDGPU
168 tristate "AMD GPU"
Benjamin Gaignard011cda52017-01-07 12:39:11 +0100169 depends on DRM && PCI && MMU
Alex Deucherd38ceaf2015-04-20 16:55:21 -0400170 select FW_LOADER
171 select DRM_KMS_HELPER
Alex Deucherd38ceaf2015-04-20 16:55:21 -0400172 select DRM_TTM
173 select POWER_SUPPLY
174 select HWMON
175 select BACKLIGHT_CLASS_DEVICE
Thierry Redingb325a782015-08-14 12:50:12 +0200176 select BACKLIGHT_LCD_SUPPORT
Alex Deucherd38ceaf2015-04-20 16:55:21 -0400177 select INTERVAL_TREE
178 help
179 Choose this option if you have a recent AMD Radeon graphics card.
180
181 If M is selected, the module will be called amdgpu.
182
183source "drivers/gpu/drm/amd/amdgpu/Kconfig"
Maruthi Bayyavarapua8fe58c2015-09-22 17:05:20 -0400184
Ben Skeggsf3c93cb2012-03-16 18:19:14 +1000185source "drivers/gpu/drm/nouveau/Kconfig"
186
Daniel Vetter4520f532013-10-09 09:18:51 +0200187source "drivers/gpu/drm/i915/Kconfig"
Josh Triplett99486b82013-08-13 16:23:17 -0700188
Zach Reizner502e95c2015-03-04 16:33:41 -0800189config DRM_VGEM
190 tristate "Virtual GEM provider"
191 depends on DRM
192 help
193 Choose this option to get a virtual graphics memory manager,
194 as used by Mesa's software renderer for enhanced performance.
195 If M is selected the module will be called vgem.
196
197
Thomas Hellstrom5a7b74b2011-10-11 10:42:51 +0200198source "drivers/gpu/drm/exynos/Kconfig"
199
Mark Yao2048e322014-08-22 18:36:26 +0800200source "drivers/gpu/drm/rockchip/Kconfig"
201
Thomas Hellstrom5a7b74b2011-10-11 10:42:51 +0200202source "drivers/gpu/drm/vmwgfx/Kconfig"
Alan Cox91c75492011-11-03 18:22:48 +0000203
204source "drivers/gpu/drm/gma500/Kconfig"
205
Dave Airlie53209182010-12-15 07:14:24 +1000206source "drivers/gpu/drm/udl/Kconfig"
Dave Airlie312fec12012-02-29 13:40:04 +0000207
208source "drivers/gpu/drm/ast/Kconfig"
209
Dave Airlie414c4532012-04-17 15:01:25 +0100210source "drivers/gpu/drm/mgag200/Kconfig"
Dave Airlief9aa76a2012-04-17 14:12:29 +0100211
212source "drivers/gpu/drm/cirrus/Kconfig"
Laurent Pinchart51c13272012-04-26 13:53:59 +0200213
Russell King96f60e32012-08-15 13:59:49 +0100214source "drivers/gpu/drm/armada/Kconfig"
215
Boris Brezillon1a396782015-01-06 11:13:28 +0100216source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
217
Laurent Pinchart4bf8e192013-06-19 13:54:11 +0200218source "drivers/gpu/drm/rcar-du/Kconfig"
219
Laurent Pinchart51c13272012-04-26 13:53:59 +0200220source "drivers/gpu/drm/shmobile/Kconfig"
Thierry Redingd8f4a9e2012-11-15 21:28:22 +0000221
Maxime Ripard9026e0d2015-10-29 09:36:23 +0100222source "drivers/gpu/drm/sun4i/Kconfig"
223
Rob Clark8bb0daf2013-02-11 12:43:09 -0500224source "drivers/gpu/drm/omapdrm/Kconfig"
Dave Airlieca18e142013-02-21 09:31:47 +1000225
Rob Clark16ea9752013-01-08 15:04:28 -0600226source "drivers/gpu/drm/tilcdc/Kconfig"
Dave Airlief64122c2013-02-25 14:47:55 +1000227
228source "drivers/gpu/drm/qxl/Kconfig"
Rob Clarkc8afe682013-06-26 12:44:06 -0400229
Gerd Hoffmann0a6659b2013-12-17 18:04:46 +0100230source "drivers/gpu/drm/bochs/Kconfig"
231
Dave Airliedc5698e2013-09-09 10:02:56 +1000232source "drivers/gpu/drm/virtio/Kconfig"
233
Rob Clarkc8afe682013-06-26 12:44:06 -0400234source "drivers/gpu/drm/msm/Kconfig"
Thierry Redingdee82682013-10-09 10:32:49 +0200235
Jianwei Wang109eee22015-08-19 22:19:49 -0400236source "drivers/gpu/drm/fsl-dcu/Kconfig"
237
Thierry Redingdee82682013-10-09 10:32:49 +0200238source "drivers/gpu/drm/tegra/Kconfig"
Thierry Redingaead40e2013-08-30 13:36:43 +0200239
240source "drivers/gpu/drm/panel/Kconfig"
Benjamin Gaignardf2cb3142014-07-30 18:20:56 +0200241
Thierry Redinga33ee952015-07-21 17:01:19 +0200242source "drivers/gpu/drm/bridge/Kconfig"
243
Benjamin Gaignardf2cb3142014-07-30 18:20:56 +0200244source "drivers/gpu/drm/sti/Kconfig"
Oded Gabbay4a488a72014-07-16 21:08:55 +0300245
246source "drivers/gpu/drm/amd/amdkfd/Kconfig"
Philipp Zabel6556f7f2014-11-24 16:33:34 +0100247
248source "drivers/gpu/drm/imx/Kconfig"
Eric Anholtc8b75bc2015-03-02 13:01:12 -0800249
250source "drivers/gpu/drm/vc4/Kconfig"
The etnaviv authorsa8c21a52015-12-03 18:21:29 +0100251
252source "drivers/gpu/drm/etnaviv/Kconfig"
Carlos Palminha51dacf22016-02-19 15:30:26 +0300253
254source "drivers/gpu/drm/arc/Kconfig"
Xinliang Liu23e7b2a2015-10-09 18:00:56 +0800255
256source "drivers/gpu/drm/hisilicon/Kconfig"
CK Hu119f5172016-01-04 18:36:34 +0100257
258source "drivers/gpu/drm/mediatek/Kconfig"
David Herrmannd92d9c3a2016-08-04 10:06:56 +0200259
Shawn Guo0a886f52016-09-22 19:52:39 +0800260source "drivers/gpu/drm/zte/Kconfig"
261
Marek Vasut45d59d72016-08-18 20:23:01 +0200262source "drivers/gpu/drm/mxsfb/Kconfig"
263
Neil Armstrongbbbe7752016-11-10 15:29:37 +0100264source "drivers/gpu/drm/meson/Kconfig"
265
Noralf Trønnesfa201ac2017-01-22 00:15:00 +0100266source "drivers/gpu/drm/tinydrm/Kconfig"
267
David Herrmannd92d9c3a2016-08-04 10:06:56 +0200268# Keep legacy drivers last
269
270menuconfig DRM_LEGACY
271 bool "Enable legacy drivers (DANGEROUS)"
Benjamin Gaignard7e53c282017-01-12 09:57:36 +0100272 depends on DRM && MMU
Benjamin Gaignard99c48e12017-01-04 10:12:56 +0100273 select DRM_VM
David Herrmannd92d9c3a2016-08-04 10:06:56 +0200274 help
275 Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous
276 APIs to user-space, which can be used to circumvent access
277 restrictions and other security measures. For backwards compatibility
278 those drivers are still available, but their use is highly
279 inadvisable and might harm your system.
280
281 You are recommended to use the safe modeset-only drivers instead, and
282 perform 3D emulation in user-space.
283
284 Unless you have strong reasons to go rogue, say "N".
285
286if DRM_LEGACY
287
288config DRM_TDFX
289 tristate "3dfx Banshee/Voodoo3+"
290 depends on DRM && PCI
291 help
292 Choose this option if you have a 3dfx Banshee or Voodoo3 (or later),
293 graphics card. If M is selected, the module will be called tdfx.
294
295config DRM_R128
296 tristate "ATI Rage 128"
297 depends on DRM && PCI
298 select FW_LOADER
299 help
300 Choose this option if you have an ATI Rage 128 graphics card. If M
301 is selected, the module will be called r128. AGP support for
302 this card is strongly suggested (unless you have a PCI version).
303
304config DRM_I810
305 tristate "Intel I810"
306 # !PREEMPT because of missing ioctl locking
307 depends on DRM && AGP && AGP_INTEL && (!PREEMPT || BROKEN)
308 help
309 Choose this option if you have an Intel I810 graphics card. If M is
310 selected, the module will be called i810. AGP support is required
311 for this driver to work.
312
313config DRM_MGA
314 tristate "Matrox g200/g400"
315 depends on DRM && PCI
316 select FW_LOADER
317 help
318 Choose this option if you have a Matrox G200, G400 or G450 graphics
319 card. If M is selected, the module will be called mga. AGP
320 support is required for this driver to work.
321
322config DRM_SIS
323 tristate "SiS video cards"
324 depends on DRM && AGP
325 depends on FB_SIS || FB_SIS=n
326 help
327 Choose this option if you have a SiS 630 or compatible video
328 chipset. If M is selected the module will be called sis. AGP
329 support is required for this driver to work.
330
331config DRM_VIA
332 tristate "Via unichrome video cards"
333 depends on DRM && PCI
334 help
335 Choose this option if you have a Via unichrome or compatible video
336 chipset. If M is selected the module will be called via.
337
338config DRM_SAVAGE
339 tristate "Savage video cards"
340 depends on DRM && PCI
341 help
342 Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
343 chipset. If M is selected the module will be called savage.
344
345endif # DRM_LEGACY
Chris Wilsona33d42d2016-12-22 08:36:08 +0000346
347config DRM_LIB_RANDOM
348 bool
349 default n