]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/acpi/bus.c
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
[linux-2.6-omap-h63xx.git] / drivers / acpi / bus.c
index b77f03d51f0b6b7c7879612b6233fda2ccc1a7a9..dd3983cece92d7b590c6e2fce965d7fab2bbb9cc 100644 (file)
@@ -205,12 +205,14 @@ int acpi_bus_set_power(acpi_handle handle, int state)
         * Get device's current power state if it's unknown
         * This means device power state isn't initialized or previous setting failed
         */
-       if (device->power.state == ACPI_STATE_UNKNOWN)
-               acpi_bus_get_power(device->handle, &device->power.state);
-       if (state == device->power.state) {
-               ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n",
-                                 state));
-               return_VALUE(0);
+       if (!device->flags.force_power_state) {
+               if (device->power.state == ACPI_STATE_UNKNOWN)
+                       acpi_bus_get_power(device->handle, &device->power.state);
+               if (state == device->power.state) {
+                       ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n",
+                                         state));
+                       return_VALUE(0);
+               }
        }
        if (!device->power.states[state].flags.valid) {
                ACPI_DEBUG_PRINT((ACPI_DB_WARN, "Device does not support D%d\n",