x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD systems
authorYazen Ghannam <yazen.ghannam@amd.com>
Wed, 7 Jun 2017 15:19:46 +0000 (10:19 -0500)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 27 Jun 2017 00:00:52 +0000 (02:00 +0200)
commit5209654a46ee71137ad9b06da99d4ef2794475af
tree15f10af144d762cf767b23a9e78459b0b6ec7964
parentd50a7d8acd780f54c48703ab1069c2e64a24e4a0
x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD systems

AMD systems support the Monitor/Mwait instructions and these can be used
for ACPI C1 in the same way as on Intel systems.

Three things are needed:
 1) This patch.
 2) BIOS that declares a C1 state in _CST to use FFH, with correct values.
 3) CPUID_Fn00000005_EDX is non-zero on the system.

The BIOS on AMD systems have historically not defined a C1 state in _CST,
so the acpi_idle driver uses HALT for ACPI C1.

Currently released systems have CPUID_Fn00000005_EDX as reserved/RAZ. If a
BIOS is released for these systems that requests a C1 state with FFH, the
FFH implementation in Linux will fail since CPUID_Fn00000005_EDX is 0. The
acpi_idle driver will then fallback to using HALT for ACPI C1.

Future systems are expected to have non-zero CPUID_Fn00000005_EDX and BIOS
support for using FFH for ACPI C1.

Allow ffh_cstate_init() to succeed on AMD systems.

Tested on Fam15h and Fam17h systems.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/kernel/acpi/cstate.c