linux_dsm_epyc7002/drivers/pci
Lukas Wunner 437eb7bf7b ACPI / hotplug / PCI: Make device_is_managed_by_native_pciehp() public
We're about to add runtime PM of hotplug ports, but we need to restrict it
to ports that are handled natively by the OS:  If they're handled by the
firmware (which is the case for Thunderbolt on non-Macs), things would
break if the OS put the ports into D3hot behind the firmware's back.

To determine if a hotplug port is handled natively, one has to walk up from
the port to the root bridge and check the cached _OSC Control Field for the
value of the "PCI Express Native Hot Plug control" bit.  There's already a
function to do that, device_is_managed_by_native_pciehp(), but it's private
to drivers/pci/hotplug/acpiphp_glue.c and only compiled in if
CONFIG_HOTPLUG_PCI_ACPI is enabled.

Make it public and move it to drivers/pci/pci-acpi.c, so that it is
available in the more general CONFIG_ACPI case.

The function contains a check if the device in question is a hotplug port
and returns false if it's not.  The caller we're going to add doesn't need
this as it only calls the function if it actually *is* a hotplug port.
Move the check out of the function into the single existing caller.

Rename it to pciehp_is_native() and add some kerneldoc and polish.

No functional change intended.

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-17 18:47:58 -06:00
..
host PCI changes for the v4.9 merge window: 2016-10-13 17:08:58 -07:00
hotplug ACPI / hotplug / PCI: Make device_is_managed_by_native_pciehp() public 2016-11-17 18:47:58 -06:00
pcie PCI: Consolidate conditions to allow runtime PM on PCIe ports 2016-11-17 18:46:22 -06:00
access.c
ats.c
bus.c PCI: Autosense device removal in pci_bridge_d3_update() 2016-11-17 18:44:56 -06:00
ecam.c tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
host-bridge.c cxl: use pcibios_free_controller_deferred() when removing vPHBs 2016-08-22 11:09:33 +10:00
hotplug-pci.c
htirq.c
iov.c PCI: Check for pci_setup_device() failure in pci_iov_add_virtfn() 2016-09-12 16:23:38 -05:00
irq.c
Kconfig PCI/MSI: Enable PCI_MSI_IRQ_DOMAIN support for ARC 2016-09-06 10:53:32 -05:00
Makefile
msi.c Merge branch 'irq/for-block' into irq/core 2016-09-15 20:54:40 +02:00
of.c
pci-acpi.c ACPI / hotplug / PCI: Make device_is_managed_by_native_pciehp() public 2016-11-17 18:47:58 -06:00
pci-driver.c Merge branch 'pci/pm' into next 2016-10-03 09:43:21 -05:00
pci-label.c
pci-mid.c x86/platform/intel-mid: Add Intel Penwell to ID table 2016-09-08 14:07:53 +02:00
pci-stub.c
pci-sysfs.c
pci.c PCI: Unfold conditions to block runtime PM on PCIe ports 2016-11-17 18:47:05 -06:00
pci.h PCI: Activate runtime PM on a PCIe port only if it can suspend 2016-11-17 18:46:06 -06:00
probe.c Merge branch 'pci/aer' into next 2016-10-03 09:42:57 -05:00
proc.c
quirks.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2016-10-10 14:04:16 -07:00
remove.c PCI: Autosense device removal in pci_bridge_d3_update() 2016-11-17 18:44:56 -06:00
rom.c
search.c
setup-bus.c x86/ioapic: Ignore root bridges without a companion ACPI device 2016-09-10 20:30:31 +02:00
setup-irq.c
setup-res.c
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00