mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 17:12:06 +00:00
6c2b374d74
Patch 3 implements the core part of PCI-Express AER and aerdrv port service driver. When a root port service device is probed, the aerdrv will call request_irq to register irq handler for AER error interrupt. When a device sends an PCI-Express error message to the root port, the root port will trigger an interrupt, by either MSI or IO-APIC, then kernel would run the irq handler. The handler collects root error status register and schedules a work. The work will call the core part to process the error based on its type (Correctable/non-fatal/fatal). As for Correctable errors, the patch chooses to just clear the correctable error status register of the device. As for the non-fatal error, the patch follows generic PCI error handler rules to call the error callback functions of the endpoint's driver. If the device is a bridge, the patch chooses to broadcast the error to downstream devices. As for the fatal error, the patch resets the pci-express link and follows generic PCI error handler rules to call the error callback functions of the endpoint's driver. If the device is a bridge, the patch chooses to broadcast the error to downstream devices. Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
38 lines
1.0 KiB
Plaintext
38 lines
1.0 KiB
Plaintext
#
|
|
# 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.
|
|
|
|
config HOTPLUG_PCI_PCIE_POLL_EVENT_MODE
|
|
bool "Use polling mechanism for hot-plug events (for testing purpose)"
|
|
depends on HOTPLUG_PCI_PCIE
|
|
help
|
|
Say Y here if you want to use the polling mechanism for hot-plug
|
|
events for early platform testing.
|
|
|
|
When in doubt, say N.
|
|
|
|
source "drivers/pci/pcie/aer/Kconfig"
|