162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig DRM_I915
362306a36Sopenharmony_ci	tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
462306a36Sopenharmony_ci	depends on DRM
562306a36Sopenharmony_ci	depends on X86 && PCI
662306a36Sopenharmony_ci	depends on !PREEMPT_RT
762306a36Sopenharmony_ci	select INTEL_GTT if X86
862306a36Sopenharmony_ci	select INTERVAL_TREE
962306a36Sopenharmony_ci	# we need shmfs for the swappable backing store, and in particular
1062306a36Sopenharmony_ci	# the shmem_readpage() which depends upon tmpfs
1162306a36Sopenharmony_ci	select SHMEM
1262306a36Sopenharmony_ci	select TMPFS
1362306a36Sopenharmony_ci	select DRM_DISPLAY_DP_HELPER
1462306a36Sopenharmony_ci	select DRM_DISPLAY_HDCP_HELPER
1562306a36Sopenharmony_ci	select DRM_DISPLAY_HDMI_HELPER
1662306a36Sopenharmony_ci	select DRM_DISPLAY_HELPER
1762306a36Sopenharmony_ci	select DRM_KMS_HELPER
1862306a36Sopenharmony_ci	select DRM_PANEL
1962306a36Sopenharmony_ci	select DRM_MIPI_DSI
2062306a36Sopenharmony_ci	select FB_IOMEM_HELPERS if DRM_FBDEV_EMULATION
2162306a36Sopenharmony_ci	select RELAY
2262306a36Sopenharmony_ci	select I2C
2362306a36Sopenharmony_ci	select I2C_ALGOBIT
2462306a36Sopenharmony_ci	select IRQ_WORK
2562306a36Sopenharmony_ci	# i915 depends on ACPI_VIDEO when ACPI is enabled
2662306a36Sopenharmony_ci	# but for select to work, need to select ACPI_VIDEO's dependencies, ick
2762306a36Sopenharmony_ci	select BACKLIGHT_CLASS_DEVICE if ACPI
2862306a36Sopenharmony_ci	select INPUT if ACPI
2962306a36Sopenharmony_ci	select X86_PLATFORM_DEVICES if ACPI
3062306a36Sopenharmony_ci	select ACPI_WMI if ACPI
3162306a36Sopenharmony_ci	select ACPI_VIDEO if ACPI
3262306a36Sopenharmony_ci	select ACPI_BUTTON if ACPI
3362306a36Sopenharmony_ci	select SYNC_FILE
3462306a36Sopenharmony_ci	select IOSF_MBI if X86
3562306a36Sopenharmony_ci	select CRC32
3662306a36Sopenharmony_ci	select SND_HDA_I915 if SND_HDA_CORE
3762306a36Sopenharmony_ci	select CEC_CORE if CEC_NOTIFIER
3862306a36Sopenharmony_ci	select VMAP_PFN
3962306a36Sopenharmony_ci	select DRM_TTM
4062306a36Sopenharmony_ci	select DRM_BUDDY
4162306a36Sopenharmony_ci	select AUXILIARY_BUS
4262306a36Sopenharmony_ci	help
4362306a36Sopenharmony_ci	  Choose this option if you have a system that has "Intel Graphics
4462306a36Sopenharmony_ci	  Media Accelerator" or "HD Graphics" integrated graphics,
4562306a36Sopenharmony_ci	  including 830M, 845G, 852GM, 855GM, 865G, 915G, 945G, 965G,
4662306a36Sopenharmony_ci	  G35, G41, G43, G45 chipsets and Celeron, Pentium, Core i3,
4762306a36Sopenharmony_ci	  Core i5, Core i7 as well as Atom CPUs with integrated graphics.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  This driver is used by the Intel driver in X.org 6.8 and
5062306a36Sopenharmony_ci	  XFree86 4.4 and above. It replaces the older i830 module that
5162306a36Sopenharmony_ci	  supported a subset of the hardware in older X.org releases.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	  Note that the older i810/i815 chipsets require the use of the
5462306a36Sopenharmony_ci	  i810 driver instead, and the Atom z5xx series has an entirely
5562306a36Sopenharmony_ci	  different implementation.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	  If "M" is selected, the module will be called i915.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciconfig DRM_I915_FORCE_PROBE
6062306a36Sopenharmony_ci	string "Force probe i915 for selected Intel hardware IDs"
6162306a36Sopenharmony_ci	depends on DRM_I915
6262306a36Sopenharmony_ci	help
6362306a36Sopenharmony_ci	  This is the default value for the i915.force_probe module
6462306a36Sopenharmony_ci	  parameter. Using the module parameter overrides this option.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	  Force probe the i915 driver for Intel graphics devices that are
6762306a36Sopenharmony_ci	  recognized but not properly supported by this kernel version. Force
6862306a36Sopenharmony_ci	  probing an unsupported device taints the kernel. It is recommended to
6962306a36Sopenharmony_ci	  upgrade to a kernel version with proper support as soon as it is
7062306a36Sopenharmony_ci	  available.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	  It can also be used to block the probe of recognized and fully
7362306a36Sopenharmony_ci	  supported devices.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci	  Use "" to disable force probe. If in doubt, use this.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	  Use "<pci-id>[,<pci-id>,...]" to force probe the i915 for listed
7862306a36Sopenharmony_ci	  devices. For example, "4500" or "4500,4571".
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci	  Use "*" to force probe the driver for all known devices. Not
8162306a36Sopenharmony_ci	  recommended.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	  Use "!" right before the ID to block the probe of the device. For
8462306a36Sopenharmony_ci	  example, "4500,!4571" forces the probe of 4500 and blocks the probe of
8562306a36Sopenharmony_ci	  4571.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	  Use "!*" to block the probe of the driver for all known devices.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciconfig DRM_I915_CAPTURE_ERROR
9062306a36Sopenharmony_ci	bool "Enable capturing GPU state following a hang"
9162306a36Sopenharmony_ci	depends on DRM_I915
9262306a36Sopenharmony_ci	default y
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  This option enables capturing the GPU state when a hang is detected.
9562306a36Sopenharmony_ci	  This information is vital for triaging hangs and assists in debugging.
9662306a36Sopenharmony_ci	  Please report any hang for triaging according to:
9762306a36Sopenharmony_ci	    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	  If in doubt, say "Y".
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciconfig DRM_I915_COMPRESS_ERROR
10262306a36Sopenharmony_ci	bool "Compress GPU error state"
10362306a36Sopenharmony_ci	depends on DRM_I915_CAPTURE_ERROR
10462306a36Sopenharmony_ci	select ZLIB_DEFLATE
10562306a36Sopenharmony_ci	default y
10662306a36Sopenharmony_ci	help
10762306a36Sopenharmony_ci	  This option selects ZLIB_DEFLATE if it isn't already
10862306a36Sopenharmony_ci	  selected and causes any error state captured upon a GPU hang
10962306a36Sopenharmony_ci	  to be compressed using zlib.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci	  If in doubt, say "Y".
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciconfig DRM_I915_USERPTR
11462306a36Sopenharmony_ci	bool "Always enable userptr support"
11562306a36Sopenharmony_ci	depends on DRM_I915
11662306a36Sopenharmony_ci	select MMU_NOTIFIER
11762306a36Sopenharmony_ci	default y
11862306a36Sopenharmony_ci	help
11962306a36Sopenharmony_ci	  This option selects CONFIG_MMU_NOTIFIER if it isn't already
12062306a36Sopenharmony_ci	  selected to enabled full userptr support.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci	  If in doubt, say "Y".
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciconfig DRM_I915_GVT_KVMGT
12562306a36Sopenharmony_ci	tristate "Enable KVM host support Intel GVT-g graphics virtualization"
12662306a36Sopenharmony_ci	depends on DRM_I915
12762306a36Sopenharmony_ci	depends on X86
12862306a36Sopenharmony_ci	depends on 64BIT
12962306a36Sopenharmony_ci	depends on KVM
13062306a36Sopenharmony_ci	depends on VFIO
13162306a36Sopenharmony_ci	select DRM_I915_GVT
13262306a36Sopenharmony_ci	select KVM_EXTERNAL_WRITE_TRACKING
13362306a36Sopenharmony_ci	select VFIO_MDEV
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	help
13662306a36Sopenharmony_ci	  Choose this option if you want to enable Intel GVT-g graphics
13762306a36Sopenharmony_ci	  virtualization technology host support with integrated graphics.
13862306a36Sopenharmony_ci	  With GVT-g, it's possible to have one integrated graphics
13962306a36Sopenharmony_ci	  device shared by multiple VMs under KVM.
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci	  Note that this driver only supports newer device from Broadwell on.
14262306a36Sopenharmony_ci	  For further information and setup guide, you can visit:
14362306a36Sopenharmony_ci	  http://01.org/igvt-g.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci	  If in doubt, say "N".
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ciconfig DRM_I915_PXP
14862306a36Sopenharmony_ci	bool "Enable Intel PXP support"
14962306a36Sopenharmony_ci	depends on DRM_I915
15062306a36Sopenharmony_ci	depends on INTEL_MEI && INTEL_MEI_PXP
15162306a36Sopenharmony_ci	default n
15262306a36Sopenharmony_ci	help
15362306a36Sopenharmony_ci	  PXP (Protected Xe Path) is an i915 component, available on graphics
15462306a36Sopenharmony_ci	  version 12 and newer GPUs, that helps to establish the hardware
15562306a36Sopenharmony_ci	  protected session and manage the status of the alive software session,
15662306a36Sopenharmony_ci	  as well as its life cycle.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_cimenu "drm/i915 Debugging"
15962306a36Sopenharmony_cidepends on DRM_I915
16062306a36Sopenharmony_cidepends on EXPERT
16162306a36Sopenharmony_cisource "drivers/gpu/drm/i915/Kconfig.debug"
16262306a36Sopenharmony_ciendmenu
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_cimenu "drm/i915 Profile Guided Optimisation"
16562306a36Sopenharmony_ci	visible if EXPERT
16662306a36Sopenharmony_ci	depends on DRM_I915
16762306a36Sopenharmony_ci	source "drivers/gpu/drm/i915/Kconfig.profile"
16862306a36Sopenharmony_ciendmenu
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ciconfig DRM_I915_GVT
17162306a36Sopenharmony_ci	bool
172