ACPI / PM: Introduce efi poweroff for HW-full platforms without _S5
authorChen Yu <yu.c.chen@intel.com>
Tue, 22 Mar 2016 00:51:10 +0000 (08:51 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 9 Apr 2016 00:11:43 +0000 (02:11 +0200)
commit1373718194ebebc43c00d8f117e03885749495b0
tree8fffff6302b18df6b12cbc2fc79d04c58135faff
parent9735a22799b9214d17d3c231fe377fc852f042e9
ACPI / PM: Introduce efi poweroff for HW-full platforms without _S5

The problem is Linux registers pm_power_off = efi_power_off only if
we are in hardware reduced mode. Actually, what we also want is to do
this when ACPI S5 is simply not supported on non-legacy platforms.
Since some future Intel platforms are HW-full mode where the DSDT
fails to supply an _S5 object(without SLP_TYP), we should let such
kind of platform to leverage efi runtime service to poweroff.

This patch uses efi power off as first choice when S5 is unavailable,
even if there is a customized poweroff(driver provided, eg).
Meanwhile, the legacy platforms will not be affected because there is
no path for them to overwrite the pm_power_off to efi power off.

Suggested-by: Len Brown <len.brown@intel.com>
Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/platform/efi/quirks.c
drivers/acpi/sleep.c
include/linux/acpi.h