config VIRTIO
	tristate
	---help---
	  This option is selected by any driver which implements the virtio
	  bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_LGUEST,
	  CONFIG_RPMSG or CONFIG_S390_GUEST.

menu "Virtio drivers"

config VIRTIO_PCI
	tristate "PCI driver for virtio devices"
	depends on PCI
	select VIRTIO
	---help---
	  This driver provides support for virtio based paravirtual device
	  drivers over PCI.  This requires that your VMM has appropriate PCI
	  virtio backends.  Most QEMU based VMMs should support these devices
	  (like KVM or Xen).

	  If unsure, say M.

config VIRTIO_PCI_LEGACY
	bool "Support for legacy virtio draft 0.9.X and older devices"
	default y
	depends on VIRTIO_PCI
	---help---
          Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.

	  This option enables building a transitional driver, supporting
	  both devices conforming to Virtio 1 specification, and legacy devices.
	  If disabled, you get a slightly smaller, non-transitional driver,
	  with no legacy compatibility.

          So look out into your driveway.  Do you have a flying car?  If
          so, you can happily disable this option and virtio will not
          break.  Otherwise, leave it set.  Unless you're testing what
          life will be like in The Future.

	  If unsure, say Y.

config VIRTIO_BALLOON
	tristate "Virtio balloon driver"
	depends on VIRTIO
	select MEMORY_BALLOON
	---help---
	 This driver supports increasing and decreasing the amount
	 of memory within a KVM guest.

	 If unsure, say M.

config VIRTIO_INPUT
	tristate "Virtio input driver"
	depends on VIRTIO
	depends on INPUT
	---help---
	 This driver supports virtio input devices such as
	 keyboards, mice and tablets.

	 If unsure, say M.

 config VIRTIO_MMIO
	tristate "Platform bus driver for memory mapped virtio devices"
	depends on HAS_IOMEM && HAS_DMA
 	select VIRTIO
 	---help---
 	 This drivers provides support for memory mapped virtio
	 platform device driver.

 	 If unsure, say N.

config VIRTIO_MMIO_CMDLINE_DEVICES
	bool "Memory mapped virtio devices parameter parsing"
	depends on VIRTIO_MMIO
	---help---
	 Allow virtio-mmio devices instantiation via the kernel command line
	 or module parameters. Be aware that using incorrect parameters (base
	 address in particular) can crash your system - you have been warned.
	 See Documentation/kernel-parameters.txt for details.

	 If unsure, say 'N'.

endmenu
