1# SPDX-License-Identifier: GPL-2.0-only
2config DRM_XE
3	tristate "Intel Xe Graphics"
4	depends on DRM && PCI && MMU && (m || (y && KUNIT=y))
5	select INTERVAL_TREE
6	# we need shmfs for the swappable backing store, and in particular
7	# the shmem_readpage() which depends upon tmpfs
8	select SHMEM
9	select TMPFS
10	select DRM_BUDDY
11	select DRM_CLIENT_SELECTION
12	select DRM_EXEC
13	select DRM_KMS_HELPER
14	select DRM_KUNIT_TEST_HELPERS if DRM_XE_KUNIT_TEST != n
15	select DRM_PANEL
16	select DRM_SUBALLOC_HELPER
17	select DRM_DISPLAY_DP_HELPER
18	select DRM_DISPLAY_DSC_HELPER
19	select DRM_DISPLAY_HDCP_HELPER
20	select DRM_DISPLAY_HDMI_HELPER
21	select DRM_DISPLAY_HELPER
22	select DRM_MIPI_DSI
23	select RELAY
24	select IRQ_WORK
25	# xe depends on ACPI_VIDEO when ACPI is enabled
26	# but for select to work, need to select ACPI_VIDEO's dependencies, ick
27	select BACKLIGHT_CLASS_DEVICE if ACPI
28	select INPUT if ACPI
29	select ACPI_VIDEO if X86 && ACPI
30	select X86_PLATFORM_DEVICES if X86 && ACPI
31	select ACPI_WMI if X86 && ACPI
32	select SYNC_FILE
33	select IOSF_MBI
34	select CRC32
35	select SND_HDA_I915 if SND_HDA_CORE
36	select CEC_CORE if CEC_NOTIFIER
37	select VMAP_PFN
38	select DRM_TTM
39	select DRM_TTM_HELPER
40	select DRM_EXEC
41	select DRM_GPUVM
42	select DRM_GPUSVM if !UML && DEVICE_PRIVATE
43	select DRM_SCHED
44	select MMU_NOTIFIER
45	select WANT_DEV_COREDUMP
46	select AUXILIARY_BUS
47	select HMM_MIRROR
48	help
49	  Experimental driver for Intel Xe series GPUs
50
51	  If "M" is selected, the module will be called xe.
52
53config DRM_XE_DISPLAY
54	bool "Enable display support"
55	depends on DRM_XE && DRM_XE=m && HAS_IOPORT
56	select FB_IOMEM_HELPERS if DRM_FBDEV_EMULATION
57	select I2C
58	select I2C_ALGOBIT
59	default y
60	help
61	  Disable this option only if you want to compile out display support.
62
63config DRM_XE_DP_TUNNEL
64	bool "Enable DP tunnel support"
65	depends on DRM_XE_DISPLAY
66	depends on USB4
67	select DRM_DISPLAY_DP_TUNNEL
68	default y
69	help
70	  Choose this option to detect DP tunnels and enable the Bandwidth
71	  Allocation mode for such tunnels. This allows using the maximum
72	  resolution allowed by the link BW on all displays sharing the
73	  link BW, for instance on a Thunderbolt link.
74
75	  If in doubt say "Y".
76
77config DRM_XE_DEVMEM_MIRROR
78	bool "Enable device memory mirror"
79	depends on DRM_XE
80	select GET_FREE_REGION
81	default y
82	help
83	  Disable this option only if you want to compile out without device
84	  memory mirror. Will reduce KMD memory footprint when disabled.
85
86config DRM_XE_FORCE_PROBE
87	string "Force probe xe for selected Intel hardware IDs"
88	depends on DRM_XE
89	help
90	  This is the default value for the xe.force_probe module
91	  parameter. Using the module parameter overrides this option.
92
93	  Force probe the xe for Intel graphics devices that are
94	  recognized but not properly supported by this kernel version. It is
95	  recommended to upgrade to a kernel version with proper support as soon
96	  as it is available.
97
98	  It can also be used to block the probe of recognized and fully
99	  supported devices.
100
101	  Use "" to disable force probe. If in doubt, use this.
102
103	  Use "<pci-id>[,<pci-id>,...]" to force probe the xe for listed
104	  devices. For example, "4500" or "4500,4571".
105
106	  Use "*" to force probe the driver for all known devices.
107
108	  Use "!" right before the ID to block the probe of the device. For
109	  example, "4500,!4571" forces the probe of 4500 and blocks the probe of
110	  4571.
111
112	  Use "!*" to block the probe of the driver for all known devices.
113
114menu "drm/Xe Debugging"
115depends on DRM_XE
116depends on EXPERT
117source "drivers/gpu/drm/xe/Kconfig.debug"
118endmenu
119
120menu "drm/xe Profile Guided Optimisation"
121	visible if EXPERT
122	depends on DRM_XE
123	source "drivers/gpu/drm/xe/Kconfig.profile"
124endmenu
125