OSDN Git Service

PCI: Add Downstream Port Containment driver
authorKeith Busch <keith.busch@intel.com>
Thu, 28 Apr 2016 22:24:48 +0000 (16:24 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 3 May 2016 15:39:24 +0000 (10:39 -0500)
commit26e515713342b6f7c553aa3c66b21c6ab7cf82af
treeb1a1f3223de5c7ea6d6a379f06f5d8d687ae7490
parent10126ac14d36e74b2705802dc915b0b18463a51f
PCI: Add Downstream Port Containment driver

Add driver for the PCI Express Downstream Port Containment extended
capability.  DPC is an optional capability to contain uncorrectable errors
below a port.

For more information on DPC, please see PCI Express Base Specification
Revision 4, section 7.31, or view the PCI-SIG DPC ECN here:

  https://pcisig.com/sites/default/files/specification_documents/ECN_DPC_2012-02-09_finalized.pdf

When a DPC event is triggered, the hardware disables downstream links, so
the DPC driver schedules removal for all devices below this port.  This may
happen concurrently with a PCIe hotplug driver if enabled.  When all
downstream devices are removed and the link state transitions to disabled,
the DPC driver clears the DPC status and interrupt bits so the link may
retrain for a newly connected device.

[bhelgaas: clear (not set) DPC_CTL bits on remove, whitespace cleanup]
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Lukas Wunner <lukas@wunner.de>
drivers/pci/pcie/Kconfig
drivers/pci/pcie/Makefile
drivers/pci/pcie/pcie-dpc.c [new file with mode: 0644]
include/uapi/linux/pci_regs.h