• Lukas Wunner's avatar
    ACPI / hotplug / PCI: Make device_is_managed_by_native_pciehp() public · 437eb7bf
    Lukas Wunner authored
    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: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    437eb7bf
acpiphp_glue.c 25.2 KB