c7f486567c
PCIe native PME detection mechanism is based on interrupts generated by root ports or event collectors every time a PCIe device sends a PME message upstream. Once a PME message has been sent by an endpoint device and received by its root port (or event collector in the case of root complex integrated endpoints), the Requester ID from the message header is registered in the root port's Root Status register. At the same time, the PME Status bit of the Root Status register is set to indicate that there's a PME to handle. If PCIe PME interrupt is enabled for the root port, it generates an interrupt once the PME Status has been set. After receiving the interrupt, the kernel can identify the PCIe device that generated the PME using the Requester ID from the root port's Root Status register. [For details, see PCI Express Base Specification, Rev. 2.0.] Implement a driver for the PCIe PME root port service working in accordance with the above description. Based on a patch from Shaohua Li <shaohua.li@intel.com>. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
52 lines
1.3 KiB
Text
52 lines
1.3 KiB
Text
#
|
|
# 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
|