ACPI: Introduce ACPI D3_COLD state support
If a device has _PR3, it means the device supports D3_COLD. Add the ability to validate and enter D3_COLD state in ACPI. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Родитель
c16fa4f2ad
Коммит
3ebc81b893
|
@ -500,14 +500,14 @@ int acpi_power_transition(struct acpi_device *device, int state)
|
|||
{
|
||||
int result;
|
||||
|
||||
if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3))
|
||||
if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3_COLD))
|
||||
return -EINVAL;
|
||||
|
||||
if (device->power.state == state)
|
||||
return 0;
|
||||
|
||||
if ((device->power.state < ACPI_STATE_D0)
|
||||
|| (device->power.state > ACPI_STATE_D3))
|
||||
|| (device->power.state > ACPI_STATE_D3_COLD))
|
||||
return -ENODEV;
|
||||
|
||||
/* TBD: Resources must be ordered. */
|
||||
|
|
|
@ -885,6 +885,13 @@ static int acpi_bus_get_power_flags(struct acpi_device *device)
|
|||
acpi_bus_add_power_resource(ps->resources.handles[j]);
|
||||
}
|
||||
|
||||
/* The exist of _PR3 indicates D3Cold support */
|
||||
if (i == ACPI_STATE_D3) {
|
||||
status = acpi_get_handle(device->handle, object_name, &handle);
|
||||
if (ACPI_SUCCESS(status))
|
||||
device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
|
||||
}
|
||||
|
||||
/* Evaluate "_PSx" to see if we can do explicit sets */
|
||||
object_name[2] = 'S';
|
||||
status = acpi_get_handle(device->handle, object_name, &handle);
|
||||
|
|
Загрузка…
Ссылка в новой задаче