• Mika Westerberg's avatar
    ACPI / PM: Introduce concept of a _PR0 dependent device · 4533771c
    Mika Westerberg authored
    If there are shared power resources between otherwise unrelated devices
    turning them on causes the other devices sharing them to be powered up
    as well. In case of PCI devices go into D0uninitialized state meaning
    that if they were configured to trigger wake that configuration is lost
    at this point.
    
    For this reason introduce a concept of "_PR0 dependent device" that can
    be added to any ACPI device that has power resources. The dependent
    device will be included in a list of dependent devices for all power
    resources returned by the ACPI device's _PR0 (assuming it has one).
    Whenever a power resource having dependent devices is turned physically
    on (its _ON method is called) we runtime resume all of them to allow
    their driver or in case of PCI the PCI core to re-initialize the device
    and its wake configuration.
    
    This adds two functions that can be used to add and remove these
    dependent devices. Note the dependent device does not necessary need
    share power resources so this functionality can be used to add "software
    dependencies" as well if needed.
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    4533771c
power.c 26 KB