diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2008-07-06 21:30:55 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2008-07-07 19:25:02 -0400 |
commit | 3737b2b1046900660b42e25c904b85e78139d25b (patch) | |
tree | a03ba67b061c44eddca14073e5317b1eb4fc1431 | |
parent | c6c4f070a61b2b6e5cd317a5fbf25255878688a2 (diff) |
ACPI: Introduce acpi_bus_power_manageable function
Introduce function acpi_bus_power_manageable() allowing other
(dependent) subsystems to check if ACPI is able to power manage given
device. This may be useful, for example, for PCI device power
management.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r-- | drivers/acpi/bus.c | 11 | ||||
-rw-r--r-- | include/acpi/acpi_bus.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index a6dbcf4d9ef5..b9b69d9629b5 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -295,6 +295,17 @@ int acpi_bus_set_power(acpi_handle handle, int state) | |||
295 | 295 | ||
296 | EXPORT_SYMBOL(acpi_bus_set_power); | 296 | EXPORT_SYMBOL(acpi_bus_set_power); |
297 | 297 | ||
298 | bool acpi_bus_power_manageable(acpi_handle handle) | ||
299 | { | ||
300 | struct acpi_device *device; | ||
301 | int result; | ||
302 | |||
303 | result = acpi_bus_get_device(handle, &device); | ||
304 | return result ? false : device->flags.power_manageable; | ||
305 | } | ||
306 | |||
307 | EXPORT_SYMBOL(acpi_bus_power_manageable); | ||
308 | |||
298 | /* -------------------------------------------------------------------------- | 309 | /* -------------------------------------------------------------------------- |
299 | Event Management | 310 | Event Management |
300 | -------------------------------------------------------------------------- */ | 311 | -------------------------------------------------------------------------- */ |
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index db90a74f8714..0c21ea3bb672 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -335,6 +335,7 @@ void acpi_bus_data_handler(acpi_handle handle, u32 function, void *context); | |||
335 | int acpi_bus_get_status(struct acpi_device *device); | 335 | int acpi_bus_get_status(struct acpi_device *device); |
336 | int acpi_bus_get_power(acpi_handle handle, int *state); | 336 | int acpi_bus_get_power(acpi_handle handle, int *state); |
337 | int acpi_bus_set_power(acpi_handle handle, int state); | 337 | int acpi_bus_set_power(acpi_handle handle, int state); |
338 | bool acpi_bus_power_manageable(acpi_handle handle); | ||
338 | #ifdef CONFIG_ACPI_PROC_EVENT | 339 | #ifdef CONFIG_ACPI_PROC_EVENT |
339 | int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data); | 340 | int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data); |
340 | int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data); | 341 | int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data); |