• A
    PCI: Suspend/resume quirks for Apple thunderbolt · 1df5172c
    Andreas Noever 提交于
    Add two quirks to support thunderbolt suspend/resume on Apple systems.
    We need to perform two different actions during suspend and resume:
    
    The whole controller has to be powered down before suspend. If this is
    not done then the native host interface device will be gone after resume
    if a thunderbolt device was plugged in before suspending. The controller
    represents itself as multiple PCI devices/bridges. To power it down we
    hook into the upstream bridge of the controller and call the magic ACPI
    methods.  Power will be restored automatically during resume (by the
    firmware presumably).
    
    During resume we have to wait for the native host interface to
    reestablish all pci tunnels. Since there is no parent-child relationship
    between the NHI and the bridges we have to explicitly wait for them
    using device_pm_wait_for_dev. We do this in the resume_noirq phase of
    the downstream bridges of the controller (which lead into the
    thunderbolt tunnels).
    Signed-off-by: NAndreas Noever <andreas.noever@gmail.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1df5172c
quirks.c 131.3 KB