aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/power.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-01-17 08:11:07 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-01-17 08:11:07 -0500
commit0596a52b8357b25185e06af32973225baeb7196a (patch)
tree90d1d8572a390c47109bf2fe8da545a60f2f1032 /drivers/acpi/power.c
parente88c9c603b2ad0cd0fbe90afedba3f1becbbeb79 (diff)
ACPI: Use system level attribute of wakeup power resources
The system level attribute of ACPI power resources is the lowest system sleep level (S0, S2 etc.) in which the given resource can be "on" (ACPI 5.0, Section 7.1). On the other hand, wakeup power resources have to be "on" for devices depending on them to be able to signal wakeup. Therefore devices cannot wake up the system from sleep states higher than the minimum of the system level attributes of their wakeup power resources. Use the wakeup power resources' system level values to get the deepest system sleep state (highest system sleep level) the given device can wake up the system from. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/power.c')
-rw-r--r--drivers/acpi/power.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index 1600f753fafe..089a7c39348f 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -429,6 +429,20 @@ void acpi_power_add_remove_device(struct acpi_device *adev, bool add)
429 } 429 }
430} 430}
431 431
432int acpi_power_min_system_level(struct list_head *list)
433{
434 struct acpi_power_resource_entry *entry;
435 int system_level = 5;
436
437 list_for_each_entry(entry, list, node) {
438 struct acpi_power_resource *resource = entry->resource;
439
440 if (system_level > resource->system_level)
441 system_level = resource->system_level;
442 }
443 return system_level;
444}
445
432/* -------------------------------------------------------------------------- 446/* --------------------------------------------------------------------------
433 Device Power Management 447 Device Power Management
434 -------------------------------------------------------------------------- */ 448 -------------------------------------------------------------------------- */