• Lukas Wunner's avatar
    PCI: pciehp: Obey compulsory command delay after resume · 469e764c
    Lukas Wunner authored
    Upon resume from system sleep, the Slot Control register is written via:
    
      pci_pm_resume_noirq()
        pci_pm_default_resume_early()
          pci_restore_state()
            pci_restore_pcie_state()
    
    PCIe r4.0, sec 6.7.3.2 says that after "issuing a write transaction that
    targets any portion of the Port's Slot Control register, [...] software
    must wait for [the] command to complete before issuing the next command".
    
    pciehp currently fails to enforce that rule after the above-mentioned
    write.  Fix it.
    
    (Moving restoration of the Slot Control register to pciehp doesn't seem
    to make sense because the other PCIe hotplug drivers may need it as
    well.)
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    469e764c
pciehp_core.c 8.79 KB