diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index 29803857a2efdaa9a1e762549c23b62a82ade29a..06ad05288af8d7ad8647695434518b8e4d7f02d1 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c @@ -193,9 +193,6 @@ static int __acpi_power_on(struct acpi_power_resource *resource) 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)); @@ -261,16 +258,12 @@ static int acpi_power_off(acpi_handle handle) } 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); @@ -659,6 +652,7 @@ void acpi_add_power_resource(acpi_handle handle) 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); @@ -672,17 +666,6 @@ void acpi_add_power_resource(acpi_handle handle) 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");