#
# PCI configuration
#
config PCI_MSI
	bool "Message Signaled Interrupts (MSI and MSI-X)"
	depends on PCI
	depends on (X86_LOCAL_APIC && X86_IO_APIC) || IA64
	help
	   This allows device drivers to enable MSI (Message Signaled
	   Interrupts).  Message Signaled Interrupts enable a device to
	   generate an interrupt using an inbound Memory Write on its
	   PCI bus instead of asserting a device IRQ pin.

	   Use of PCI MSI interrupts can be disabled at kernel boot time
	   by using the 'pci=nomsi' option.  This disables MSI for the
	   entire system.

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

config PCI_MULTITHREAD_PROBE
	bool "PCI Multi-threaded probe (EXPERIMENTAL)"
	depends on PCI && EXPERIMENTAL
	help
	  Say Y here if you want the PCI core to spawn a new thread for
	  every PCI device that is probed.  This can cause a huge
	  speedup in boot times on multiprocessor machines, and even a
	  smaller speedup on single processor machines.

	  But it can also cause lots of bad things to happen.  A number
	  of PCI drivers can not properly handle running in this way,
	  some will just not work properly at all, while others might
	  decide to blow up power supplies with a huge load all at once,
	  so use this option at your own risk.

	  It is very unwise to use this option if you are not using a
	  boot process that can handle devices being created in any
	  order.  A program that can create persistant block and network
	  device names (like udev) is a good idea if you wish to use
	  this option.

	  Again, use this option at your own risk, you have been warned!

	  When in doubt, say N.

config PCI_DEBUG
	bool "PCI Debugging"
	depends on PCI && DEBUG_KERNEL
	help
	  Say Y here if you want the PCI core to produce a bunch of debug
	  messages to the system log.  Select this if you are having a
	  problem with PCI support and want to see more of what is going on.

	  When in doubt, say N.

config HT_IRQ
	bool "Interrupts on hypertransport devices"
	default y
	depends on PCI && X86_LOCAL_APIC && X86_IO_APIC
	help
	   This allows native hypertransport devices to use interrupts.

	   If unsure say Y.
