diff options
Diffstat (limited to 'drivers/acpi/scan.c')
-rw-r--r-- | drivers/acpi/scan.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 8ab80bafe3f1..767e2dcb9616 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -880,18 +880,22 @@ static int acpi_bus_get_power_flags(struct acpi_device *device) | |||
880 | int j; | 880 | int j; |
881 | 881 | ||
882 | device->power.flags.power_resources = 1; | 882 | device->power.flags.power_resources = 1; |
883 | ps->flags.valid = 1; | ||
884 | for (j = 0; j < ps->resources.count; j++) | 883 | for (j = 0; j < ps->resources.count; j++) |
885 | acpi_bus_add_power_resource(ps->resources.handles[j]); | 884 | acpi_bus_add_power_resource(ps->resources.handles[j]); |
886 | } | 885 | } |
887 | 886 | ||
887 | /* The exist of _PR3 indicates D3Cold support */ | ||
888 | if (i == ACPI_STATE_D3) { | ||
889 | status = acpi_get_handle(device->handle, object_name, &handle); | ||
890 | if (ACPI_SUCCESS(status)) | ||
891 | device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1; | ||
892 | } | ||
893 | |||
888 | /* Evaluate "_PSx" to see if we can do explicit sets */ | 894 | /* Evaluate "_PSx" to see if we can do explicit sets */ |
889 | object_name[2] = 'S'; | 895 | object_name[2] = 'S'; |
890 | status = acpi_get_handle(device->handle, object_name, &handle); | 896 | status = acpi_get_handle(device->handle, object_name, &handle); |
891 | if (ACPI_SUCCESS(status)) { | 897 | if (ACPI_SUCCESS(status)) |
892 | ps->flags.explicit_set = 1; | 898 | ps->flags.explicit_set = 1; |
893 | ps->flags.valid = 1; | ||
894 | } | ||
895 | 899 | ||
896 | /* State is valid if we have some power control */ | 900 | /* State is valid if we have some power control */ |
897 | if (ps->resources.count || ps->flags.explicit_set) | 901 | if (ps->resources.count || ps->flags.explicit_set) |