ACPI / PM: Introduce function for refcounting device power resources
authorRafael J. Wysocki <rjw@sisk.pl>
Wed, 24 Nov 2010 23:06:55 +0000 (00:06 +0100)
committerLen Brown <len.brown@intel.com>
Wed, 12 Jan 2011 09:48:44 +0000 (04:48 -0500)
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
drivers/acpi/power.c

index 2cc01489dccf567f24fadfa3cc7b7a39b316622c..433a8ee8ac2c37b9a84470e844883bea8e464de8 100644 (file)
@@ -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;
 
index 95fedbdf4fb82330879bc486385de660c834f6c0..0cb4eab50d734e862d1a85d4dd0693d4d15d0173 100644 (file)
@@ -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;