#
# PCI Express Port Bus Configuration
#
config PCIEPORTBUS
	bool "PCI Express support"
	depends on PCI
	help
	  This automatically enables PCI Express Port Bus support. Users can
	  choose Native Hot-Plug support, Advanced Error Reporting support,
	  Power Management Event support and Virtual Channel support to run
	  on PCI Express Ports (Root or Switch).

#
# Include service Kconfig here
#
config HOTPLUG_PCI_PCIE
	tristate "PCI Express Hotplug driver"
	depends on HOTPLUG_PCI && PCIEPORTBUS
	help
	  Say Y here if you have a motherboard that supports PCI Express Native
	  Hotplug

	  To compile this driver as a module, choose M here: the
	  module will be called pciehp.

	  When in doubt, say N.

source "drivers/pci/pcie/aer/Kconfig"

#
# PCI Express ASPM
#
config PCIEASPM
	bool "PCI Express ASPM support(Experimental)"
	depends on PCI && EXPERIMENTAL && PCIEPORTBUS
	default n
	help
	  This enables PCI Express ASPM (Active State Power Management) and
	  Clock Power Management. ASPM supports state L0/L0s/L1.

	  When in doubt, say N.
config PCIEASPM_DEBUG
	bool "Debug PCI Express ASPM"
	depends on PCIEASPM
	default n
	help
	  This enables PCI Express ASPM debug support. It will add per-device
	  interface to control ASPM.

config PCIE_PME
	def_bool y
	depends on PCIEPORTBUS && PM_RUNTIME && EXPERIMENTAL && ACPI
