mbox series

[v4,0/8] Add Error Disconnect Recover (EDR) support

Message ID cover.1562185606.git.sathyanarayanan.kuppuswamy@linux.intel.com (mailing list archive)
Headers show
Series Add Error Disconnect Recover (EDR) support | expand

Message

Kuppuswamy Sathyanarayanan July 3, 2019, 8:29 p.m. UTC
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

This patchset adds support for following features:

1. Error Disconnect Recover (EDR) support.
2. _OSC based negotiation support for DPC.

You can find EDR spec in the following link.

https://members.pcisig.com/wg/PCI-SIG/document/12614

Changes since v1:
 * Rebased on top of v5.1-rc1

Changes since v2:
 * Split EDR support patch into multiple patches.
 * Addressed Bjorn comments.

Changes since v3:
 * Moved EDR related ACPI functions/definitions to pci-acpi.c
 * Modified commit history in few patches to include spec reference.
 * Added support to handle DPC triggered by NON_FATAL errors.
 * Added edr_lock to protect PCI device receiving duplicate EDR notifications.
 * Addressed Bjorn comments.

Kuppuswamy Sathyanarayanan (8):
  PCI/ACPI: Add _OSC based negotiation support for DPC
  PCI/ACPI: Expose EDR support via _OSC to BIOS
  PCI/DPC: Allow dpc_probe() even if firmware first mode is enabled
  PCI/DPC: Add dpc_process_error() wrapper function
  PCI/DPC: Add Error Disconnect Recover (EDR) support
  PCI/AER: Allow clearing Error Status Register in FF mode
  PCI/DPC: Add support for DPC recovery on NON_FATAL errors
  PCI/DPC: Clear AER registers in EDR mode

 drivers/acpi/pci_root.c         |   9 ++
 drivers/pci/pci-acpi.c          |  91 +++++++++++++++
 drivers/pci/pcie/Kconfig        |  10 ++
 drivers/pci/pcie/aer.c          |   9 --
 drivers/pci/pcie/dpc.c          | 200 +++++++++++++++++++++++++++++---
 drivers/pci/pcie/portdrv_core.c |   8 +-
 drivers/pci/probe.c             |   1 +
 include/linux/acpi.h            |   4 +-
 include/linux/pci-acpi.h        |  11 ++
 include/linux/pci.h             |   1 +
 10 files changed, 314 insertions(+), 30 deletions(-)