• Lukas Wunner's avatar
    PCI: Whitelist native hotplug ports for runtime D3 · eb3b5bf1
    Lukas Wunner authored
    Previously we blacklisted PCIe hotplug ports for runtime D3 because:
    
    (a) Ports handled by the firmware must not be transitioned to D3 by the
        OS behind the firmware's back:
        https://bugzilla.kernel.org/show_bug.cgi?id=53811
    
    (b) Ports handled natively by the OS lacked runtime D3 support in the
        pciehp driver.
    
    We've just rectified the latter, so allow users to manually enable and
    test it by passing pcie_port_pm=force on the command line.  Vendors are
    thus put in a position to validate hotplug ports for runtime D3 and
    perhaps we can someday enable it by default, but with a BIOS cutoff date.
    
    Ashok Raj tested runtime D3 on hotplug ports of a SkyLake Xeon-SP in
    2017 and encountered Hardware Error NMIs, so this feature clearly cannot
    be enabled for everyone yet:
    https://lkml.kernel.org/r/20170503180426.GA4058@otc-nc-03
    
    While at it, remove an erroneous code comment I added with 97a90aee
    ("PCI: Consolidate conditions to allow runtime PM on PCIe ports") which
    claims that parents of a hotplug port must stay awake lest interrupts
    cannot be delivered.  That has turned out to be wrong at least for
    Thunderbolt hotplug ports.
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
    Cc: Ashok Raj <ashok.raj@intel.com>
    Cc: Keith Busch <keith.busch@intel.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    eb3b5bf1
pci.c 153 KB