# SPDX-License-Identifier: GPL-2.0-only
config VFIO_PCI
	tristate "VFIO support for PCI devices"
	depends on VFIO && PCI && EVENTFD
	depends on MMU
	select VFIO_VIRQFD
	select IRQ_BYPASS_MANAGER
	help
	  Support for the PCI VFIO bus driver.  This is required to make
	  use of PCI drivers using the VFIO framework.

	  If you don't know what to do here, say N.

config VFIO_PCI_VGA
	bool "VFIO PCI support for VGA devices"
	depends on VFIO_PCI && X86 && VGA_ARB
	help
	  Support for VGA extension to VFIO PCI.  This exposes an additional
	  region on VGA devices for accessing legacy VGA addresses used by
	  BIOS and generic video drivers.

	  If you don't know what to do here, say N.

config VFIO_PCI_MMAP
	depends on VFIO_PCI
	def_bool y if !S390

config VFIO_PCI_INTX
	depends on VFIO_PCI
	def_bool y if !S390

config VFIO_PCI_IGD
	bool "VFIO PCI extensions for Intel graphics (GVT-d)"
	depends on VFIO_PCI && X86
	default y
	help
	  Support for Intel IGD specific extensions to enable direct
	  assignment to virtual machines.  This includes exposing an IGD
	  specific firmware table and read-only copies of the host bridge
	  and LPC bridge config space.

	  To enable Intel IGD assignment through vfio-pci, say Y.

config VFIO_PCI_NVLINK2
	def_bool y
	depends on VFIO_PCI && PPC_POWERNV && SPAPR_TCE_IOMMU
	help
	  VFIO PCI support for P9 Witherspoon machine with NVIDIA V100 GPUs
