diff options
| -rw-r--r-- | drivers/acpi/bus.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index cf761b904e4a..ae9226de93a6 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
| @@ -190,16 +190,16 @@ int acpi_bus_get_power(acpi_handle handle, int *state) | |||
| 190 | * Get the device's power state either directly (via _PSC) or | 190 | * Get the device's power state either directly (via _PSC) or |
| 191 | * indirectly (via power resources). | 191 | * indirectly (via power resources). |
| 192 | */ | 192 | */ |
| 193 | if (device->power.flags.explicit_get) { | 193 | if (device->power.flags.power_resources) { |
| 194 | result = acpi_power_get_inferred_state(device); | ||
| 195 | if (result) | ||
| 196 | return result; | ||
| 197 | } else if (device->power.flags.explicit_get) { | ||
| 194 | status = acpi_evaluate_integer(device->handle, "_PSC", | 198 | status = acpi_evaluate_integer(device->handle, "_PSC", |
| 195 | NULL, &psc); | 199 | NULL, &psc); |
| 196 | if (ACPI_FAILURE(status)) | 200 | if (ACPI_FAILURE(status)) |
| 197 | return -ENODEV; | 201 | return -ENODEV; |
| 198 | device->power.state = (int)psc; | 202 | device->power.state = (int)psc; |
| 199 | } else if (device->power.flags.power_resources) { | ||
| 200 | result = acpi_power_get_inferred_state(device); | ||
| 201 | if (result) | ||
| 202 | return result; | ||
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | *state = device->power.state; | 205 | *state = device->power.state; |
