[PATCH 34/48] ACPI / PM: Introduce function for refcounting device power resources

Len Brown
2011-01-12T17:00:33Z

From: Rafael J. Wysocki <rjw@sisk.pl>

Introduce function acpi_power_on_resources() that reference counts
and possibly turns on ACPI power resources for a given device and
a given power state of it.

This function will be used for reference counting device power
resources during initialization.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
---
drivers/acpi/internal.h | 1 +
drivers/acpi/power.c | 8 ++++++++
2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 2cc0148..433a8ee 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -42,6 +42,7 @@ int acpi_power_init(void);
int acpi_device_sleep_wake(struct acpi_device *dev,
int enable, int sleep_state, int dev_state);
int acpi_power_get_inferred_state(struct acpi_device *device, int *state);
+int acpi_power_on_resources(struct acpi_device *device, int state);
int acpi_power_transition(struct acpi_device *device, int state);
extern int acpi_power_nocheck;

diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index 95fedbd..0cb4eab 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -485,6 +485,14 @@ int acpi_power_get_inferred_state(struct acpi_device *device, int *state)
return 0;
}

+int acpi_power_on_resources(struct acpi_device *device, int state)
+{
+ if (!device || state < ACPI_STATE_D0 || state > ACPI_STATE_D3)
+ return -EINVAL;
+
+ return acpi_power_on_list(&device->power.states[state].resources);
+}
+
int acpi_power_transition(struct acpi_device *device, int state)
{
int result;
--
1.7.4.rc1.7.g2cf08