]> git.ipfire.org Git - thirdparty/linux.git/commit - include/linux/pci.h
PCI: Add support for Immediate Readiness
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 7 Sep 2018 06:16:51 +0000 (09:16 +0300)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 28 Sep 2018 17:47:34 +0000 (12:47 -0500)
commitd6112f8def514e019658bcc9b57d53acdb71ca3f
tree1d2666a9f462e87b0d27038a2c8e15d4a8f8e2dd
parentbad7dcd94f3956bcfc0a69ef71fdf0fcca3de4a8
PCI: Add support for Immediate Readiness

PCIe r4.0, sec 7.5.1.1.4 defines a new bit in the Status Register:

  Immediate Readiness – This optional bit, when Set, indicates the Function
  is guaranteed to be ready to successfully complete valid configuration
  accesses at any time following any reset that the host is capable of
  issuing Configuration Requests to this Function.

  When this bit is Set, for accesses to this Function, software is exempt
  from all requirements to delay configuration accesses following any type
  of reset, including but not limited to the timing requirements defined in
  Section 6.6.

This means that all delays after a Conventional or Function Reset can be
skipped.

This patch reads such bit and caches its value in a flag inside struct
pci_dev to be checked later if we should delay or can skip delays after a
reset.  While at that, also move the explicit msleep(100) call from
pcie_flr() and pci_af_flr() to pci_dev_wait().

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
[bhelgaas: rename PCI_STATUS_IMMEDIATE to PCI_STATUS_IMM_READY]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci.c
include/linux/pci.h
include/uapi/linux/pci_regs.h