xref: /linux/drivers/gpu/drm/Kconfig (revision 99c48e1e38f0aeaa107ad67c8d91f6c9d9d567a9)
1c0e09200SDave Airlie#
2c0e09200SDave Airlie# Drm device configuration
3c0e09200SDave Airlie#
4c0e09200SDave Airlie# This driver provides support for the
5c0e09200SDave Airlie# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
6c0e09200SDave Airlie#
7c0e09200SDave Airliemenuconfig DRM
8c0e09200SDave Airlie	tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
9cc6a36f2SGeert Uytterhoeven	depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && MMU && HAS_DMA
1010a85120SThierry Reding	select HDMI
11eaf99c74SChris Wilson	select FB_CMDLINE
1257a6297eSDave Airlie	select I2C
1357a6297eSDave Airlie	select I2C_ALGOBIT
143248877eSDave Airlie	select DMA_SHARED_BUFFER
1596260142SGustavo Padovan	select SYNC_FILE
16c0e09200SDave Airlie	help
17c0e09200SDave Airlie	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
18c0e09200SDave Airlie	  introduced in XFree86 4.0. If you say Y here, you need to select
19c0e09200SDave Airlie	  the module that's right for your graphics card from the list below.
20c0e09200SDave Airlie	  These modules provide support for synchronization, security, and
21c0e09200SDave Airlie	  DMA transfers. Please see <http://dri.sourceforge.net/> for more
22c0e09200SDave Airlie	  details.  You should also select and configure AGP
23dcdb1674SJordan Crouse	  (/dev/agpgart) support if it is available for your platform.
24c0e09200SDave Airlie
25068a0023SAndrzej Hajdaconfig DRM_MIPI_DSI
26068a0023SAndrzej Hajda	bool
27068a0023SAndrzej Hajda	depends on DRM
28068a0023SAndrzej Hajda
29e94cb37bSRafael Antognolliconfig DRM_DP_AUX_CHARDEV
30e94cb37bSRafael Antognolli	bool "DRM DP AUX Interface"
31e94cb37bSRafael Antognolli	depends on DRM
32e94cb37bSRafael Antognolli	help
33e94cb37bSRafael Antognolli	  Choose this option to enable a /dev/drm_dp_auxN node that allows to
34e94cb37bSRafael Antognolli	  read and write values to arbitrary DPCD registers on the DP aux
35e94cb37bSRafael Antognolli	  channel.
36e94cb37bSRafael Antognolli
375705670dSChris Wilsonconfig DRM_DEBUG_MM
385705670dSChris Wilson	bool "Insert extra checks and debug info into the DRM range managers"
395705670dSChris Wilson	default n
40cd456f8dSChris Wilson	depends on DRM=y
414b514e10SChris Wilson	depends on STACKTRACE_SUPPORT
425705670dSChris Wilson	select STACKDEPOT
435705670dSChris Wilson	help
445705670dSChris Wilson	  Enable allocation tracking of memory manager and leak detection on
455705670dSChris Wilson	  shutdown.
465705670dSChris Wilson
475705670dSChris Wilson	  Recommended for driver developers only.
485705670dSChris Wilson
495705670dSChris Wilson	  If in doubt, say "N".
505705670dSChris Wilson
5150f0033dSChris Wilsonconfig DRM_DEBUG_MM_SELFTEST
5250f0033dSChris Wilson	tristate "kselftests for DRM range manager (struct drm_mm)"
5350f0033dSChris Wilson	depends on DRM
5450f0033dSChris Wilson	depends on DEBUG_KERNEL
5550f0033dSChris Wilson	select PRIME_NUMBERS
5650f0033dSChris Wilson	select DRM_LIB_RANDOM
5750f0033dSChris Wilson	default n
5850f0033dSChris Wilson	help
5950f0033dSChris Wilson	  This option provides a kernel module that can be used to test
6050f0033dSChris Wilson	  the DRM range manager (drm_mm) and its API. This option is not
6150f0033dSChris Wilson	  useful for distributions or general kernels, but only for kernel
6250f0033dSChris Wilson	  developers working on DRM and associated drivers.
6350f0033dSChris Wilson
6450f0033dSChris Wilson	  If in doubt, say "N".
6550f0033dSChris Wilson
666fcefd56SDave Airlieconfig DRM_KMS_HELPER
6713a8195bSDave Airlie	tristate
6813a8195bSDave Airlie	depends on DRM
6992b6f89fSDaniel Vetter	help
7092b6f89fSDaniel Vetter	  CRTC helpers for KMS drivers.
7192b6f89fSDaniel Vetter
7292b6f89fSDaniel Vetterconfig DRM_KMS_FB_HELPER
7392b6f89fSDaniel Vetter	bool
7492b6f89fSDaniel Vetter	depends on DRM_KMS_HELPER
7513a8195bSDave Airlie	select FB
766a108a14SDavid Rientjes	select FRAMEBUFFER_CONSOLE if !EXPERT
77bf5192edSDave Airlie	select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
78cbb1a82eSArchit Taneja	select FB_SYS_FOPS
79742547b7SArchit Taneja	select FB_SYS_FILLRECT
80742547b7SArchit Taneja	select FB_SYS_COPYAREA
81742547b7SArchit Taneja	select FB_SYS_IMAGEBLIT
82742547b7SArchit Taneja	select FB_CFB_FILLRECT
83742547b7SArchit Taneja	select FB_CFB_COPYAREA
84742547b7SArchit Taneja	select FB_CFB_IMAGEBLIT
85eaa434deSNoralf Trønnes	select FB_DEFERRED_IO
8613a8195bSDave Airlie	help
8792b6f89fSDaniel Vetter	  FBDEV helpers for KMS drivers.
8813a8195bSDave Airlie
89a03fdcb1SArchit Tanejaconfig DRM_FBDEV_EMULATION
90a03fdcb1SArchit Taneja	bool "Enable legacy fbdev support for your modesetting driver"
91a03fdcb1SArchit Taneja	depends on DRM
92a03fdcb1SArchit Taneja	select DRM_KMS_HELPER
93a03fdcb1SArchit Taneja	select DRM_KMS_FB_HELPER
94a03fdcb1SArchit Taneja	default y
95a03fdcb1SArchit Taneja	help
96a03fdcb1SArchit Taneja	  Choose this option if you have a need for the legacy fbdev
97a03fdcb1SArchit Taneja	  support. Note that this support also provides the linux console
98a03fdcb1SArchit Taneja	  support on top of your modesetting driver.
99a03fdcb1SArchit Taneja
100a03fdcb1SArchit Taneja	  If in doubt, say "Y".
101a03fdcb1SArchit Taneja
102da0df92bSCarsten Emdeconfig DRM_LOAD_EDID_FIRMWARE
103da0df92bSCarsten Emde	bool "Allow to specify an EDID data set instead of probing for it"
104da0df92bSCarsten Emde	depends on DRM_KMS_HELPER
105da0df92bSCarsten Emde	help
106da0df92bSCarsten Emde	  Say Y here, if you want to use EDID data to be loaded from the
107da0df92bSCarsten Emde	  /lib/firmware directory or one of the provided built-in
108da0df92bSCarsten Emde	  data sets. This may be necessary, if the graphics adapter or
109da0df92bSCarsten Emde	  monitor are unable to provide appropriate EDID data. Since this
110da0df92bSCarsten Emde	  feature is provided as a workaround for broken hardware, the
111da0df92bSCarsten Emde	  default case is N. Details and instructions how to build your own
112da0df92bSCarsten Emde	  EDID data are given in Documentation/EDID/HOWTO.txt.
113da0df92bSCarsten Emde
114ba4e7d97SThomas Hellstromconfig DRM_TTM
115771fe6b9SJerome Glisse	tristate
116ba4e7d97SThomas Hellstrom	depends on DRM
117ba4e7d97SThomas Hellstrom	help
118ba4e7d97SThomas Hellstrom	  GPU memory management subsystem for devices with multiple
119ba4e7d97SThomas Hellstrom	  GPU memory types. Will be enabled automatically if a device driver
120ba4e7d97SThomas Hellstrom	  uses it.
121ba4e7d97SThomas Hellstrom
122b9d47450SSascha Hauerconfig DRM_GEM_CMA_HELPER
123b9d47450SSascha Hauer	bool
124e1c7e324SChristoph Hellwig	depends on DRM
125b9d47450SSascha Hauer	help
126b9d47450SSascha Hauer	  Choose this if you need the GEM CMA helper functions
127b9d47450SSascha Hauer
1282e3b3c42SLars-Peter Clausenconfig DRM_KMS_CMA_HELPER
1292e3b3c42SLars-Peter Clausen	bool
130e1c7e324SChristoph Hellwig	depends on DRM
1312e3b3c42SLars-Peter Clausen	select DRM_GEM_CMA_HELPER
13292b6f89fSDaniel Vetter	select DRM_KMS_FB_HELPER
1332e3b3c42SLars-Peter Clausen	select FB_SYS_FILLRECT
1342e3b3c42SLars-Peter Clausen	select FB_SYS_COPYAREA
1352e3b3c42SLars-Peter Clausen	select FB_SYS_IMAGEBLIT
1362e3b3c42SLars-Peter Clausen	help
1372e3b3c42SLars-Peter Clausen	  Choose this if you need the KMS CMA helper functions
1382e3b3c42SLars-Peter Clausen
139*99c48e1eSBenjamin Gaignardconfig DRM_VM
140*99c48e1eSBenjamin Gaignard	bool
141*99c48e1eSBenjamin Gaignard	depends on DRM
142*99c48e1eSBenjamin Gaignard
1436504d0d9SRob Clarksource "drivers/gpu/drm/i2c/Kconfig"
1446504d0d9SRob Clark
1458e22d792SLiviu Dudausource "drivers/gpu/drm/arm/Kconfig"
1468e22d792SLiviu Dudau
147c0e09200SDave Airlieconfig DRM_RADEON
148c0e09200SDave Airlie	tristate "ATI Radeon"
149c0e09200SDave Airlie	depends on DRM && PCI
15070967ab9SBen Hutchings	select FW_LOADER
151a0cdc649SDave Airlie        select DRM_KMS_HELPER
152a0cdc649SDave Airlie        select DRM_TTM
1535d9b7e2dSDave Airlie	select POWER_SUPPLY
15421a8122aSAlex Deucher	select HWMON
15514adc892SChristian König	select BACKLIGHT_CLASS_DEVICE
15633610527SThierry Reding	select BACKLIGHT_LCD_SUPPORT
1570aea5e4aSAlex Deucher	select INTERVAL_TREE
158c0e09200SDave Airlie	help
159c0e09200SDave Airlie	  Choose this option if you have an ATI Radeon graphics card.  There
160c0e09200SDave Airlie	  are both PCI and AGP versions.  You don't need to choose this to
161c0e09200SDave Airlie	  run the Radeon in plain VGA mode.
162c0e09200SDave Airlie
163c0e09200SDave Airlie	  If M is selected, the module will be called radeon.
164c0e09200SDave Airlie
165f71d0187SDave Airliesource "drivers/gpu/drm/radeon/Kconfig"
166f71d0187SDave Airlie
167d38ceaf9SAlex Deucherconfig DRM_AMDGPU
168d38ceaf9SAlex Deucher	tristate "AMD GPU"
169d38ceaf9SAlex Deucher	depends on DRM && PCI
170d38ceaf9SAlex Deucher	select FW_LOADER
171d38ceaf9SAlex Deucher        select DRM_KMS_HELPER
172d38ceaf9SAlex Deucher        select DRM_TTM
173d38ceaf9SAlex Deucher	select POWER_SUPPLY
174d38ceaf9SAlex Deucher	select HWMON
175d38ceaf9SAlex Deucher	select BACKLIGHT_CLASS_DEVICE
176b325a789SThierry Reding	select BACKLIGHT_LCD_SUPPORT
177d38ceaf9SAlex Deucher	select INTERVAL_TREE
178d38ceaf9SAlex Deucher	help
179d38ceaf9SAlex Deucher	  Choose this option if you have a recent AMD Radeon graphics card.
180d38ceaf9SAlex Deucher
181d38ceaf9SAlex Deucher	  If M is selected, the module will be called amdgpu.
182d38ceaf9SAlex Deucher
183d38ceaf9SAlex Deuchersource "drivers/gpu/drm/amd/amdgpu/Kconfig"
184a8fe58ceSMaruthi Bayyavarapu
185f3c93cbdSBen Skeggssource "drivers/gpu/drm/nouveau/Kconfig"
186f3c93cbdSBen Skeggs
1874520f53aSDaniel Vettersource "drivers/gpu/drm/i915/Kconfig"
18899486b8eSJosh Triplett
189502e95c6SZach Reiznerconfig DRM_VGEM
190502e95c6SZach Reizner	tristate "Virtual GEM provider"
191502e95c6SZach Reizner	depends on DRM
192502e95c6SZach Reizner	help
193502e95c6SZach Reizner	  Choose this option to get a virtual graphics memory manager,
194502e95c6SZach Reizner	  as used by Mesa's software renderer for enhanced performance.
195502e95c6SZach Reizner	  If M is selected the module will be called vgem.
196502e95c6SZach Reizner
197502e95c6SZach Reizner
1981c248b7dSInki Daesource "drivers/gpu/drm/exynos/Kconfig"
1995a7b74beSThomas Hellstrom
2002048e328SMark Yaosource "drivers/gpu/drm/rockchip/Kconfig"
2012048e328SMark Yao
2025a7b74beSThomas Hellstromsource "drivers/gpu/drm/vmwgfx/Kconfig"
20391c75492SAlan Cox
20491c75492SAlan Coxsource "drivers/gpu/drm/gma500/Kconfig"
20591c75492SAlan Cox
2065320918bSDave Airliesource "drivers/gpu/drm/udl/Kconfig"
207312fec14SDave Airlie
208312fec14SDave Airliesource "drivers/gpu/drm/ast/Kconfig"
209312fec14SDave Airlie
210414c4531SDave Airliesource "drivers/gpu/drm/mgag200/Kconfig"
211f9aa76a8SDave Airlie
212f9aa76a8SDave Airliesource "drivers/gpu/drm/cirrus/Kconfig"
21351c13278SLaurent Pinchart
21496f60e37SRussell Kingsource "drivers/gpu/drm/armada/Kconfig"
21596f60e37SRussell King
2161a396789SBoris Brezillonsource "drivers/gpu/drm/atmel-hlcdc/Kconfig"
2171a396789SBoris Brezillon
2184bf8e196SLaurent Pinchartsource "drivers/gpu/drm/rcar-du/Kconfig"
2194bf8e196SLaurent Pinchart
22051c13278SLaurent Pinchartsource "drivers/gpu/drm/shmobile/Kconfig"
221d8f4a9edSThierry Reding
2229026e0d1SMaxime Ripardsource "drivers/gpu/drm/sun4i/Kconfig"
2239026e0d1SMaxime Ripard
2248bb0daffSRob Clarksource "drivers/gpu/drm/omapdrm/Kconfig"
225ca18e142SDave Airlie
22616ea975eSRob Clarksource "drivers/gpu/drm/tilcdc/Kconfig"
227f64122c1SDave Airlie
228f64122c1SDave Airliesource "drivers/gpu/drm/qxl/Kconfig"
229c8afe684SRob Clark
2300a6659bdSGerd Hoffmannsource "drivers/gpu/drm/bochs/Kconfig"
2310a6659bdSGerd Hoffmann
232dc5698e8SDave Airliesource "drivers/gpu/drm/virtio/Kconfig"
233dc5698e8SDave Airlie
234c8afe684SRob Clarksource "drivers/gpu/drm/msm/Kconfig"
235dee8268fSThierry Reding
236109eee2fSJianwei Wangsource "drivers/gpu/drm/fsl-dcu/Kconfig"
237109eee2fSJianwei Wang
238dee8268fSThierry Redingsource "drivers/gpu/drm/tegra/Kconfig"
239aead40eaSThierry Reding
240aead40eaSThierry Redingsource "drivers/gpu/drm/panel/Kconfig"
241f2cb3148SBenjamin Gaignard
242a33ee95fSThierry Redingsource "drivers/gpu/drm/bridge/Kconfig"
243a33ee95fSThierry Reding
244f2cb3148SBenjamin Gaignardsource "drivers/gpu/drm/sti/Kconfig"
2454a488a7aSOded Gabbay
2464a488a7aSOded Gabbaysource "drivers/gpu/drm/amd/amdkfd/Kconfig"
2476556f7f8SPhilipp Zabel
2486556f7f8SPhilipp Zabelsource "drivers/gpu/drm/imx/Kconfig"
249c8b75bcaSEric Anholt
250c8b75bcaSEric Anholtsource "drivers/gpu/drm/vc4/Kconfig"
251a8c21a54SThe etnaviv authors
252a8c21a54SThe etnaviv authorssource "drivers/gpu/drm/etnaviv/Kconfig"
25351dacf20SCarlos Palminha
25451dacf20SCarlos Palminhasource "drivers/gpu/drm/arc/Kconfig"
25523e7b2abSXinliang Liu
25623e7b2abSXinliang Liusource "drivers/gpu/drm/hisilicon/Kconfig"
257119f5173SCK Hu
258119f5173SCK Husource "drivers/gpu/drm/mediatek/Kconfig"
259d92d9c3aSDavid Herrmann
2600a886f59SShawn Guosource "drivers/gpu/drm/zte/Kconfig"
2610a886f59SShawn Guo
26245d59d70SMarek Vasutsource "drivers/gpu/drm/mxsfb/Kconfig"
26345d59d70SMarek Vasut
264bbbe775eSNeil Armstrongsource "drivers/gpu/drm/meson/Kconfig"
265bbbe775eSNeil Armstrong
266d92d9c3aSDavid Herrmann# Keep legacy drivers last
267d92d9c3aSDavid Herrmann
268d92d9c3aSDavid Herrmannmenuconfig DRM_LEGACY
269d92d9c3aSDavid Herrmann	bool "Enable legacy drivers (DANGEROUS)"
270d92d9c3aSDavid Herrmann	depends on DRM
271*99c48e1eSBenjamin Gaignard	select DRM_VM
272d92d9c3aSDavid Herrmann	help
273d92d9c3aSDavid Herrmann	  Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous
274d92d9c3aSDavid Herrmann	  APIs to user-space, which can be used to circumvent access
275d92d9c3aSDavid Herrmann	  restrictions and other security measures. For backwards compatibility
276d92d9c3aSDavid Herrmann	  those drivers are still available, but their use is highly
277d92d9c3aSDavid Herrmann	  inadvisable and might harm your system.
278d92d9c3aSDavid Herrmann
279d92d9c3aSDavid Herrmann	  You are recommended to use the safe modeset-only drivers instead, and
280d92d9c3aSDavid Herrmann	  perform 3D emulation in user-space.
281d92d9c3aSDavid Herrmann
282d92d9c3aSDavid Herrmann	  Unless you have strong reasons to go rogue, say "N".
283d92d9c3aSDavid Herrmann
284d92d9c3aSDavid Herrmannif DRM_LEGACY
285d92d9c3aSDavid Herrmann
286d92d9c3aSDavid Herrmannconfig DRM_TDFX
287d92d9c3aSDavid Herrmann	tristate "3dfx Banshee/Voodoo3+"
288d92d9c3aSDavid Herrmann	depends on DRM && PCI
289d92d9c3aSDavid Herrmann	help
290d92d9c3aSDavid Herrmann	  Choose this option if you have a 3dfx Banshee or Voodoo3 (or later),
291d92d9c3aSDavid Herrmann	  graphics card.  If M is selected, the module will be called tdfx.
292d92d9c3aSDavid Herrmann
293d92d9c3aSDavid Herrmannconfig DRM_R128
294d92d9c3aSDavid Herrmann	tristate "ATI Rage 128"
295d92d9c3aSDavid Herrmann	depends on DRM && PCI
296d92d9c3aSDavid Herrmann	select FW_LOADER
297d92d9c3aSDavid Herrmann	help
298d92d9c3aSDavid Herrmann	  Choose this option if you have an ATI Rage 128 graphics card.  If M
299d92d9c3aSDavid Herrmann	  is selected, the module will be called r128.  AGP support for
300d92d9c3aSDavid Herrmann	  this card is strongly suggested (unless you have a PCI version).
301d92d9c3aSDavid Herrmann
302d92d9c3aSDavid Herrmannconfig DRM_I810
303d92d9c3aSDavid Herrmann	tristate "Intel I810"
304d92d9c3aSDavid Herrmann	# !PREEMPT because of missing ioctl locking
305d92d9c3aSDavid Herrmann	depends on DRM && AGP && AGP_INTEL && (!PREEMPT || BROKEN)
306d92d9c3aSDavid Herrmann	help
307d92d9c3aSDavid Herrmann	  Choose this option if you have an Intel I810 graphics card.  If M is
308d92d9c3aSDavid Herrmann	  selected, the module will be called i810.  AGP support is required
309d92d9c3aSDavid Herrmann	  for this driver to work.
310d92d9c3aSDavid Herrmann
311d92d9c3aSDavid Herrmannconfig DRM_MGA
312d92d9c3aSDavid Herrmann	tristate "Matrox g200/g400"
313d92d9c3aSDavid Herrmann	depends on DRM && PCI
314d92d9c3aSDavid Herrmann	select FW_LOADER
315d92d9c3aSDavid Herrmann	help
316d92d9c3aSDavid Herrmann	  Choose this option if you have a Matrox G200, G400 or G450 graphics
317d92d9c3aSDavid Herrmann	  card.  If M is selected, the module will be called mga.  AGP
318d92d9c3aSDavid Herrmann	  support is required for this driver to work.
319d92d9c3aSDavid Herrmann
320d92d9c3aSDavid Herrmannconfig DRM_SIS
321d92d9c3aSDavid Herrmann	tristate "SiS video cards"
322d92d9c3aSDavid Herrmann	depends on DRM && AGP
323d92d9c3aSDavid Herrmann	depends on FB_SIS || FB_SIS=n
324d92d9c3aSDavid Herrmann	help
325d92d9c3aSDavid Herrmann	  Choose this option if you have a SiS 630 or compatible video
326d92d9c3aSDavid Herrmann	  chipset. If M is selected the module will be called sis. AGP
327d92d9c3aSDavid Herrmann	  support is required for this driver to work.
328d92d9c3aSDavid Herrmann
329d92d9c3aSDavid Herrmannconfig DRM_VIA
330d92d9c3aSDavid Herrmann	tristate "Via unichrome video cards"
331d92d9c3aSDavid Herrmann	depends on DRM && PCI
332d92d9c3aSDavid Herrmann	help
333d92d9c3aSDavid Herrmann	  Choose this option if you have a Via unichrome or compatible video
334d92d9c3aSDavid Herrmann	  chipset. If M is selected the module will be called via.
335d92d9c3aSDavid Herrmann
336d92d9c3aSDavid Herrmannconfig DRM_SAVAGE
337d92d9c3aSDavid Herrmann	tristate "Savage video cards"
338d92d9c3aSDavid Herrmann	depends on DRM && PCI
339d92d9c3aSDavid Herrmann	help
340d92d9c3aSDavid Herrmann	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
341d92d9c3aSDavid Herrmann	  chipset. If M is selected the module will be called savage.
342d92d9c3aSDavid Herrmann
343d92d9c3aSDavid Herrmannendif # DRM_LEGACY
344a33d42ddSChris Wilson
345a33d42ddSChris Wilsonconfig DRM_LIB_RANDOM
346a33d42ddSChris Wilson	bool
347a33d42ddSChris Wilson	default n
348