diff options
| -rw-r--r-- | drivers/acpi/bus.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 9628652e080c..e0596954290b 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
| @@ -237,6 +237,16 @@ static int __acpi_bus_get_power(struct acpi_device *device, int *state) | |||
| 237 | } else if (result == ACPI_STATE_D3_HOT) { | 237 | } else if (result == ACPI_STATE_D3_HOT) { |
| 238 | result = ACPI_STATE_D3; | 238 | result = ACPI_STATE_D3; |
| 239 | } | 239 | } |
| 240 | |||
| 241 | /* | ||
| 242 | * If we were unsure about the device parent's power state up to this | ||
| 243 | * point, the fact that the device is in D0 implies that the parent has | ||
| 244 | * to be in D0 too. | ||
| 245 | */ | ||
| 246 | if (device->parent && device->parent->power.state == ACPI_STATE_UNKNOWN | ||
| 247 | && result == ACPI_STATE_D0) | ||
| 248 | device->parent->power.state = ACPI_STATE_D0; | ||
| 249 | |||
| 240 | *state = result; | 250 | *state = result; |
| 241 | 251 | ||
| 242 | out: | 252 | out: |
