aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2008-07-06 21:30:55 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-07-07 19:25:02 -0400
commit3737b2b1046900660b42e25c904b85e78139d25b (patch)
treea03ba67b061c44eddca14073e5317b1eb4fc1431
parentc6c4f070a61b2b6e5cd317a5fbf25255878688a2 (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.c11
-rw-r--r--include/acpi/acpi_bus.h1
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
296EXPORT_SYMBOL(acpi_bus_set_power); 296EXPORT_SYMBOL(acpi_bus_set_power);
297 297
298bool 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
307EXPORT_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);
335int acpi_bus_get_status(struct acpi_device *device); 335int acpi_bus_get_status(struct acpi_device *device);
336int acpi_bus_get_power(acpi_handle handle, int *state); 336int acpi_bus_get_power(acpi_handle handle, int *state);
337int acpi_bus_set_power(acpi_handle handle, int state); 337int acpi_bus_set_power(acpi_handle handle, int state);
338bool acpi_bus_power_manageable(acpi_handle handle);
338#ifdef CONFIG_ACPI_PROC_EVENT 339#ifdef CONFIG_ACPI_PROC_EVENT
339int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data); 340int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data);
340int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data); 341int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data);