config VFIO_IOMMU_TYPE1
	tristate
	depends on VFIO
	default n

config VFIO_IOMMU_SPAPR_TCE
	tristate
	depends on VFIO && SPAPR_TCE_IOMMU
	default VFIO

config VFIO_SPAPR_EEH
	tristate
	depends on EEH && VFIO_IOMMU_SPAPR_TCE
	default VFIO

config VFIO_VIRQFD
	tristate
	depends on VFIO && EVENTFD
	default n

menuconfig VFIO
	tristate "VFIO Non-Privileged userspace driver framework"
	depends on IOMMU_API
	select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM_SMMU || ARM_SMMU_V3)
	select ANON_INODES
	help
	  VFIO provides a framework for secure userspace device drivers.
	  See Documentation/vfio.txt for more details.

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

config VFIO_NOIOMMU
	bool "VFIO No-IOMMU support"
	depends on VFIO
	help
	  VFIO is built on the ability to isolate devices using the IOMMU.
	  Only with an IOMMU can userspace access to DMA capable devices be
	  considered secure.  VFIO No-IOMMU mode enables IOMMU groups for
	  devices without IOMMU backing for the purpose of re-using the VFIO
	  infrastructure in a non-secure mode.  Use of this mode will result
	  in an unsupportable kernel and will therefore taint the kernel.
	  Device assignment to virtual machines is also not possible with
	  this mode since there is no IOMMU to provide DMA translation.

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

source "drivers/vfio/pci/Kconfig"
source "drivers/vfio/platform/Kconfig"
source "drivers/vfio/mdev/Kconfig"
source "virt/lib/Kconfig"
