if (ACPI_FAILURE(status))
                return -ENODEV;
 
-       /* Update the power resource's _device_ power state */
-       resource->device.power.state = ACPI_STATE_D0;
-
        ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Power resource [%s] turned on\n",
                          resource->name));
 
        }
 
        status = acpi_evaluate_object(resource->device.handle, "_OFF", NULL, NULL);
-       if (ACPI_FAILURE(status)) {
+       if (ACPI_FAILURE(status))
                result = -ENODEV;
-       } else {
-               /* Update the power resource's _device_ power state */
-               resource->device.power.state = ACPI_STATE_D3;
-
+       else
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
                                  "Power resource [%s] turned off\n",
                                  resource->name));
-       }
 
  unlock:
        mutex_unlock(&resource->resource_lock);
        resource->name = device->pnp.bus_id;
        strcpy(acpi_device_name(device), ACPI_POWER_DEVICE_NAME);
        strcpy(acpi_device_class(device), ACPI_POWER_CLASS);
+       device->power.state = ACPI_STATE_UNKNOWN;
 
        /* Evalute the object to get the system level and resource order. */
        status = acpi_evaluate_object(handle, NULL, NULL, &buffer);
        if (result)
                goto err;
 
-       switch (state) {
-       case ACPI_POWER_RESOURCE_STATE_ON:
-               device->power.state = ACPI_STATE_D0;
-               break;
-       case ACPI_POWER_RESOURCE_STATE_OFF:
-               device->power.state = ACPI_STATE_D3;
-               break;
-       default:
-               device->power.state = ACPI_STATE_UNKNOWN;
-       }
-
        printk(KERN_INFO PREFIX "%s [%s] (%s)\n", acpi_device_name(device),
               acpi_device_bid(device), state ? "on" : "off");