xref: /linux/drivers/gpu/drm/Kconfig (revision a33d42dd03352d2e9d3d2c00bfa435c7a5ebab25)
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
516fcefd56SDave Airlieconfig DRM_KMS_HELPER
5213a8195bSDave Airlie	tristate
5313a8195bSDave Airlie	depends on DRM
5492b6f89fSDaniel Vetter	help
5592b6f89fSDaniel Vetter	  CRTC helpers for KMS drivers.
5692b6f89fSDaniel Vetter
5792b6f89fSDaniel Vetterconfig DRM_KMS_FB_HELPER
5892b6f89fSDaniel Vetter	bool
5992b6f89fSDaniel Vetter	depends on DRM_KMS_HELPER
6013a8195bSDave Airlie	select FB
616a108a14SDavid Rientjes	select FRAMEBUFFER_CONSOLE if !EXPERT
62bf5192edSDave Airlie	select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
63cbb1a82eSArchit Taneja	select FB_SYS_FOPS
64742547b7SArchit Taneja	select FB_SYS_FILLRECT
65742547b7SArchit Taneja	select FB_SYS_COPYAREA
66742547b7SArchit Taneja	select FB_SYS_IMAGEBLIT
67742547b7SArchit Taneja	select FB_CFB_FILLRECT
68742547b7SArchit Taneja	select FB_CFB_COPYAREA
69742547b7SArchit Taneja	select FB_CFB_IMAGEBLIT
70eaa434deSNoralf Trønnes	select FB_DEFERRED_IO
7113a8195bSDave Airlie	help
7292b6f89fSDaniel Vetter	  FBDEV helpers for KMS drivers.
7313a8195bSDave Airlie
74a03fdcb1SArchit Tanejaconfig DRM_FBDEV_EMULATION
75a03fdcb1SArchit Taneja	bool "Enable legacy fbdev support for your modesetting driver"
76a03fdcb1SArchit Taneja	depends on DRM
77a03fdcb1SArchit Taneja	select DRM_KMS_HELPER
78a03fdcb1SArchit Taneja	select DRM_KMS_FB_HELPER
79a03fdcb1SArchit Taneja	default y
80a03fdcb1SArchit Taneja	help
81a03fdcb1SArchit Taneja	  Choose this option if you have a need for the legacy fbdev
82a03fdcb1SArchit Taneja	  support. Note that this support also provides the linux console
83a03fdcb1SArchit Taneja	  support on top of your modesetting driver.
84a03fdcb1SArchit Taneja
85a03fdcb1SArchit Taneja	  If in doubt, say "Y".
86a03fdcb1SArchit Taneja
87da0df92bSCarsten Emdeconfig DRM_LOAD_EDID_FIRMWARE
88da0df92bSCarsten Emde	bool "Allow to specify an EDID data set instead of probing for it"
89da0df92bSCarsten Emde	depends on DRM_KMS_HELPER
90da0df92bSCarsten Emde	help
91da0df92bSCarsten Emde	  Say Y here, if you want to use EDID data to be loaded from the
92da0df92bSCarsten Emde	  /lib/firmware directory or one of the provided built-in
93da0df92bSCarsten Emde	  data sets. This may be necessary, if the graphics adapter or
94da0df92bSCarsten Emde	  monitor are unable to provide appropriate EDID data. Since this
95da0df92bSCarsten Emde	  feature is provided as a workaround for broken hardware, the
96da0df92bSCarsten Emde	  default case is N. Details and instructions how to build your own
97da0df92bSCarsten Emde	  EDID data are given in Documentation/EDID/HOWTO.txt.
98da0df92bSCarsten Emde
99ba4e7d97SThomas Hellstromconfig DRM_TTM
100771fe6b9SJerome Glisse	tristate
101ba4e7d97SThomas Hellstrom	depends on DRM
102ba4e7d97SThomas Hellstrom	help
103ba4e7d97SThomas Hellstrom	  GPU memory management subsystem for devices with multiple
104ba4e7d97SThomas Hellstrom	  GPU memory types. Will be enabled automatically if a device driver
105ba4e7d97SThomas Hellstrom	  uses it.
106ba4e7d97SThomas Hellstrom
107b9d47450SSascha Hauerconfig DRM_GEM_CMA_HELPER
108b9d47450SSascha Hauer	bool
109e1c7e324SChristoph Hellwig	depends on DRM
110b9d47450SSascha Hauer	help
111b9d47450SSascha Hauer	  Choose this if you need the GEM CMA helper functions
112b9d47450SSascha Hauer
1132e3b3c42SLars-Peter Clausenconfig DRM_KMS_CMA_HELPER
1142e3b3c42SLars-Peter Clausen	bool
115e1c7e324SChristoph Hellwig	depends on DRM
1162e3b3c42SLars-Peter Clausen	select DRM_GEM_CMA_HELPER
11792b6f89fSDaniel Vetter	select DRM_KMS_FB_HELPER
1182e3b3c42SLars-Peter Clausen	select FB_SYS_FILLRECT
1192e3b3c42SLars-Peter Clausen	select FB_SYS_COPYAREA
1202e3b3c42SLars-Peter Clausen	select FB_SYS_IMAGEBLIT
1212e3b3c42SLars-Peter Clausen	help
1222e3b3c42SLars-Peter Clausen	  Choose this if you need the KMS CMA helper functions
1232e3b3c42SLars-Peter Clausen
1246504d0d9SRob Clarksource "drivers/gpu/drm/i2c/Kconfig"
1256504d0d9SRob Clark
1268e22d792SLiviu Dudausource "drivers/gpu/drm/arm/Kconfig"
1278e22d792SLiviu Dudau
128c0e09200SDave Airlieconfig DRM_RADEON
129c0e09200SDave Airlie	tristate "ATI Radeon"
130c0e09200SDave Airlie	depends on DRM && PCI
13170967ab9SBen Hutchings	select FW_LOADER
132a0cdc649SDave Airlie        select DRM_KMS_HELPER
133a0cdc649SDave Airlie        select DRM_TTM
1345d9b7e2dSDave Airlie	select POWER_SUPPLY
13521a8122aSAlex Deucher	select HWMON
13614adc892SChristian König	select BACKLIGHT_CLASS_DEVICE
13733610527SThierry Reding	select BACKLIGHT_LCD_SUPPORT
1380aea5e4aSAlex Deucher	select INTERVAL_TREE
139c0e09200SDave Airlie	help
140c0e09200SDave Airlie	  Choose this option if you have an ATI Radeon graphics card.  There
141c0e09200SDave Airlie	  are both PCI and AGP versions.  You don't need to choose this to
142c0e09200SDave Airlie	  run the Radeon in plain VGA mode.
143c0e09200SDave Airlie
144c0e09200SDave Airlie	  If M is selected, the module will be called radeon.
145c0e09200SDave Airlie
146f71d0187SDave Airliesource "drivers/gpu/drm/radeon/Kconfig"
147f71d0187SDave Airlie
148d38ceaf9SAlex Deucherconfig DRM_AMDGPU
149d38ceaf9SAlex Deucher	tristate "AMD GPU"
150d38ceaf9SAlex Deucher	depends on DRM && PCI
151d38ceaf9SAlex Deucher	select FW_LOADER
152d38ceaf9SAlex Deucher        select DRM_KMS_HELPER
153d38ceaf9SAlex Deucher        select DRM_TTM
154d38ceaf9SAlex Deucher	select POWER_SUPPLY
155d38ceaf9SAlex Deucher	select HWMON
156d38ceaf9SAlex Deucher	select BACKLIGHT_CLASS_DEVICE
157b325a789SThierry Reding	select BACKLIGHT_LCD_SUPPORT
158d38ceaf9SAlex Deucher	select INTERVAL_TREE
159d38ceaf9SAlex Deucher	help
160d38ceaf9SAlex Deucher	  Choose this option if you have a recent AMD Radeon graphics card.
161d38ceaf9SAlex Deucher
162d38ceaf9SAlex Deucher	  If M is selected, the module will be called amdgpu.
163d38ceaf9SAlex Deucher
164d38ceaf9SAlex Deuchersource "drivers/gpu/drm/amd/amdgpu/Kconfig"
165a8fe58ceSMaruthi Bayyavarapu
166f3c93cbdSBen Skeggssource "drivers/gpu/drm/nouveau/Kconfig"
167f3c93cbdSBen Skeggs
1684520f53aSDaniel Vettersource "drivers/gpu/drm/i915/Kconfig"
16999486b8eSJosh Triplett
170502e95c6SZach Reiznerconfig DRM_VGEM
171502e95c6SZach Reizner	tristate "Virtual GEM provider"
172502e95c6SZach Reizner	depends on DRM
173502e95c6SZach Reizner	help
174502e95c6SZach Reizner	  Choose this option to get a virtual graphics memory manager,
175502e95c6SZach Reizner	  as used by Mesa's software renderer for enhanced performance.
176502e95c6SZach Reizner	  If M is selected the module will be called vgem.
177502e95c6SZach Reizner
178502e95c6SZach Reizner
1791c248b7dSInki Daesource "drivers/gpu/drm/exynos/Kconfig"
1805a7b74beSThomas Hellstrom
1812048e328SMark Yaosource "drivers/gpu/drm/rockchip/Kconfig"
1822048e328SMark Yao
1835a7b74beSThomas Hellstromsource "drivers/gpu/drm/vmwgfx/Kconfig"
18491c75492SAlan Cox
18591c75492SAlan Coxsource "drivers/gpu/drm/gma500/Kconfig"
18691c75492SAlan Cox
1875320918bSDave Airliesource "drivers/gpu/drm/udl/Kconfig"
188312fec14SDave Airlie
189312fec14SDave Airliesource "drivers/gpu/drm/ast/Kconfig"
190312fec14SDave Airlie
191414c4531SDave Airliesource "drivers/gpu/drm/mgag200/Kconfig"
192f9aa76a8SDave Airlie
193f9aa76a8SDave Airliesource "drivers/gpu/drm/cirrus/Kconfig"
19451c13278SLaurent Pinchart
19596f60e37SRussell Kingsource "drivers/gpu/drm/armada/Kconfig"
19696f60e37SRussell King
1971a396789SBoris Brezillonsource "drivers/gpu/drm/atmel-hlcdc/Kconfig"
1981a396789SBoris Brezillon
1994bf8e196SLaurent Pinchartsource "drivers/gpu/drm/rcar-du/Kconfig"
2004bf8e196SLaurent Pinchart
20151c13278SLaurent Pinchartsource "drivers/gpu/drm/shmobile/Kconfig"
202d8f4a9edSThierry Reding
2039026e0d1SMaxime Ripardsource "drivers/gpu/drm/sun4i/Kconfig"
2049026e0d1SMaxime Ripard
2058bb0daffSRob Clarksource "drivers/gpu/drm/omapdrm/Kconfig"
206ca18e142SDave Airlie
20716ea975eSRob Clarksource "drivers/gpu/drm/tilcdc/Kconfig"
208f64122c1SDave Airlie
209f64122c1SDave Airliesource "drivers/gpu/drm/qxl/Kconfig"
210c8afe684SRob Clark
2110a6659bdSGerd Hoffmannsource "drivers/gpu/drm/bochs/Kconfig"
2120a6659bdSGerd Hoffmann
213dc5698e8SDave Airliesource "drivers/gpu/drm/virtio/Kconfig"
214dc5698e8SDave Airlie
215c8afe684SRob Clarksource "drivers/gpu/drm/msm/Kconfig"
216dee8268fSThierry Reding
217109eee2fSJianwei Wangsource "drivers/gpu/drm/fsl-dcu/Kconfig"
218109eee2fSJianwei Wang
219dee8268fSThierry Redingsource "drivers/gpu/drm/tegra/Kconfig"
220aead40eaSThierry Reding
221aead40eaSThierry Redingsource "drivers/gpu/drm/panel/Kconfig"
222f2cb3148SBenjamin Gaignard
223a33ee95fSThierry Redingsource "drivers/gpu/drm/bridge/Kconfig"
224a33ee95fSThierry Reding
225f2cb3148SBenjamin Gaignardsource "drivers/gpu/drm/sti/Kconfig"
2264a488a7aSOded Gabbay
2274a488a7aSOded Gabbaysource "drivers/gpu/drm/amd/amdkfd/Kconfig"
2286556f7f8SPhilipp Zabel
2296556f7f8SPhilipp Zabelsource "drivers/gpu/drm/imx/Kconfig"
230c8b75bcaSEric Anholt
231c8b75bcaSEric Anholtsource "drivers/gpu/drm/vc4/Kconfig"
232a8c21a54SThe etnaviv authors
233a8c21a54SThe etnaviv authorssource "drivers/gpu/drm/etnaviv/Kconfig"
23451dacf20SCarlos Palminha
23551dacf20SCarlos Palminhasource "drivers/gpu/drm/arc/Kconfig"
23623e7b2abSXinliang Liu
23723e7b2abSXinliang Liusource "drivers/gpu/drm/hisilicon/Kconfig"
238119f5173SCK Hu
239119f5173SCK Husource "drivers/gpu/drm/mediatek/Kconfig"
240d92d9c3aSDavid Herrmann
2410a886f59SShawn Guosource "drivers/gpu/drm/zte/Kconfig"
2420a886f59SShawn Guo
24345d59d70SMarek Vasutsource "drivers/gpu/drm/mxsfb/Kconfig"
24445d59d70SMarek Vasut
245bbbe775eSNeil Armstrongsource "drivers/gpu/drm/meson/Kconfig"
246bbbe775eSNeil Armstrong
247d92d9c3aSDavid Herrmann# Keep legacy drivers last
248d92d9c3aSDavid Herrmann
249d92d9c3aSDavid Herrmannmenuconfig DRM_LEGACY
250d92d9c3aSDavid Herrmann	bool "Enable legacy drivers (DANGEROUS)"
251d92d9c3aSDavid Herrmann	depends on DRM
252d92d9c3aSDavid Herrmann	help
253d92d9c3aSDavid Herrmann	  Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous
254d92d9c3aSDavid Herrmann	  APIs to user-space, which can be used to circumvent access
255d92d9c3aSDavid Herrmann	  restrictions and other security measures. For backwards compatibility
256d92d9c3aSDavid Herrmann	  those drivers are still available, but their use is highly
257d92d9c3aSDavid Herrmann	  inadvisable and might harm your system.
258d92d9c3aSDavid Herrmann
259d92d9c3aSDavid Herrmann	  You are recommended to use the safe modeset-only drivers instead, and
260d92d9c3aSDavid Herrmann	  perform 3D emulation in user-space.
261d92d9c3aSDavid Herrmann
262d92d9c3aSDavid Herrmann	  Unless you have strong reasons to go rogue, say "N".
263d92d9c3aSDavid Herrmann
264d92d9c3aSDavid Herrmannif DRM_LEGACY
265d92d9c3aSDavid Herrmann
266d92d9c3aSDavid Herrmannconfig DRM_TDFX
267d92d9c3aSDavid Herrmann	tristate "3dfx Banshee/Voodoo3+"
268d92d9c3aSDavid Herrmann	depends on DRM && PCI
269d92d9c3aSDavid Herrmann	help
270d92d9c3aSDavid Herrmann	  Choose this option if you have a 3dfx Banshee or Voodoo3 (or later),
271d92d9c3aSDavid Herrmann	  graphics card.  If M is selected, the module will be called tdfx.
272d92d9c3aSDavid Herrmann
273d92d9c3aSDavid Herrmannconfig DRM_R128
274d92d9c3aSDavid Herrmann	tristate "ATI Rage 128"
275d92d9c3aSDavid Herrmann	depends on DRM && PCI
276d92d9c3aSDavid Herrmann	select FW_LOADER
277d92d9c3aSDavid Herrmann	help
278d92d9c3aSDavid Herrmann	  Choose this option if you have an ATI Rage 128 graphics card.  If M
279d92d9c3aSDavid Herrmann	  is selected, the module will be called r128.  AGP support for
280d92d9c3aSDavid Herrmann	  this card is strongly suggested (unless you have a PCI version).
281d92d9c3aSDavid Herrmann
282d92d9c3aSDavid Herrmannconfig DRM_I810
283d92d9c3aSDavid Herrmann	tristate "Intel I810"
284d92d9c3aSDavid Herrmann	# !PREEMPT because of missing ioctl locking
285d92d9c3aSDavid Herrmann	depends on DRM && AGP && AGP_INTEL && (!PREEMPT || BROKEN)
286d92d9c3aSDavid Herrmann	help
287d92d9c3aSDavid Herrmann	  Choose this option if you have an Intel I810 graphics card.  If M is
288d92d9c3aSDavid Herrmann	  selected, the module will be called i810.  AGP support is required
289d92d9c3aSDavid Herrmann	  for this driver to work.
290d92d9c3aSDavid Herrmann
291d92d9c3aSDavid Herrmannconfig DRM_MGA
292d92d9c3aSDavid Herrmann	tristate "Matrox g200/g400"
293d92d9c3aSDavid Herrmann	depends on DRM && PCI
294d92d9c3aSDavid Herrmann	select FW_LOADER
295d92d9c3aSDavid Herrmann	help
296d92d9c3aSDavid Herrmann	  Choose this option if you have a Matrox G200, G400 or G450 graphics
297d92d9c3aSDavid Herrmann	  card.  If M is selected, the module will be called mga.  AGP
298d92d9c3aSDavid Herrmann	  support is required for this driver to work.
299d92d9c3aSDavid Herrmann
300d92d9c3aSDavid Herrmannconfig DRM_SIS
301d92d9c3aSDavid Herrmann	tristate "SiS video cards"
302d92d9c3aSDavid Herrmann	depends on DRM && AGP
303d92d9c3aSDavid Herrmann	depends on FB_SIS || FB_SIS=n
304d92d9c3aSDavid Herrmann	help
305d92d9c3aSDavid Herrmann	  Choose this option if you have a SiS 630 or compatible video
306d92d9c3aSDavid Herrmann	  chipset. If M is selected the module will be called sis. AGP
307d92d9c3aSDavid Herrmann	  support is required for this driver to work.
308d92d9c3aSDavid Herrmann
309d92d9c3aSDavid Herrmannconfig DRM_VIA
310d92d9c3aSDavid Herrmann	tristate "Via unichrome video cards"
311d92d9c3aSDavid Herrmann	depends on DRM && PCI
312d92d9c3aSDavid Herrmann	help
313d92d9c3aSDavid Herrmann	  Choose this option if you have a Via unichrome or compatible video
314d92d9c3aSDavid Herrmann	  chipset. If M is selected the module will be called via.
315d92d9c3aSDavid Herrmann
316d92d9c3aSDavid Herrmannconfig DRM_SAVAGE
317d92d9c3aSDavid Herrmann	tristate "Savage video cards"
318d92d9c3aSDavid Herrmann	depends on DRM && PCI
319d92d9c3aSDavid Herrmann	help
320d92d9c3aSDavid Herrmann	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
321d92d9c3aSDavid Herrmann	  chipset. If M is selected the module will be called savage.
322d92d9c3aSDavid Herrmann
323d92d9c3aSDavid Herrmannendif # DRM_LEGACY
324*a33d42ddSChris Wilson
325*a33d42ddSChris Wilsonconfig DRM_LIB_RANDOM
326*a33d42ddSChris Wilson	bool
327*a33d42ddSChris Wilson	default n
328