Skip to content

Commit

Permalink
ACPI / PM: Support D3 COLD device in old BIOS for ZPODD
Browse files Browse the repository at this point in the history
D3cold is only regarded as valid if the "_PR3" object is
present for the given device after the commit 20dacb7
("ACPI/PM: Rework device power management to follow ACPI 6").

But some old BIOS only defined "_PS3" for the D3COLD device,
such as ZPODD device. And old kernel also believes the device with
"_PS3" is a D3COLD device.

So, add some logics for supporting D3 COLD device with old BIOS
which is compatible with earlier ACPI spec and kernel behavior.

Link: http://marc.info/?l=linux-acpi&m=144946938709759&w=2
Signed-off-by: Ken Xue <Ken.Xue@amd.com>
Reported-and-tested-by: Gang Long <Gang.Long@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Ken Xue authored and Rafael J. Wysocki committed Dec 9, 2015
1 parent 527e931 commit cd7f84c
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion include/acpi/acpi_bus.h
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,9 @@ static inline bool acpi_device_can_wakeup(struct acpi_device *adev)

static inline bool acpi_device_can_poweroff(struct acpi_device *adev)
{
return adev->power.states[ACPI_STATE_D3_COLD].flags.valid;
return adev->power.states[ACPI_STATE_D3_COLD].flags.valid ||
((acpi_gbl_FADT.header.revision < 6) &&
adev->power.states[ACPI_STATE_D3_HOT].flags.explicit_set);
}

#else /* CONFIG_ACPI */
Expand Down

0 comments on commit cd7f84c

Please sign in to comment.