diff options
author | Len Brown <len.brown@intel.com> | 2013-02-01 23:37:30 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2013-02-08 19:29:16 -0500 |
commit | e022e7eb90f3edb83f9ff77825eda3d1b3a2f2e0 (patch) | |
tree | 3bfc121a7534712af7ca04f4d2ac6f23582a6479 /arch/x86/include/asm/mwait.h | |
parent | 137ecc779c80138723677209730738d76262e810 (diff) | |
download | op-kernel-dev-e022e7eb90f3edb83f9ff77825eda3d1b3a2f2e0.zip op-kernel-dev-e022e7eb90f3edb83f9ff77825eda3d1b3a2f2e0.tar.gz |
intel_idle: remove assumption of one C-state per MWAIT flag
Remove the assumption that cstate_tables are
indexed by MWAIT flag values. Each entry
identifies itself via its own flags value.
This change is needed to support multiple states
that share the same MWAIT flags.
Note that this can have an effect on what state is described
by 'N' on cmdline intel_idle.max_cstate=N on some systems.
intel_idle.max_cstate=0 still disables the driver
intel_idle.max_cstate=1 still results in just C1(E)
However, "place holders" in the sparse C-state name-space
(eg. Atom) have been removed.
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/x86/include/asm/mwait.h')
-rw-r--r-- | arch/x86/include/asm/mwait.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/mwait.h b/arch/x86/include/asm/mwait.h index 3f44732..2f366d0 100644 --- a/arch/x86/include/asm/mwait.h +++ b/arch/x86/include/asm/mwait.h @@ -4,6 +4,8 @@ #define MWAIT_SUBSTATE_MASK 0xf #define MWAIT_CSTATE_MASK 0xf #define MWAIT_SUBSTATE_SIZE 4 +#define MWAIT_HINT2CSTATE(hint) (((hint) >> MWAIT_SUBSTATE_SIZE) & MWAIT_CSTATE_MASK) +#define MWAIT_HINT2SUBSTATE(hint) ((hint) & MWAIT_CSTATE_MASK) #define CPUID_MWAIT_LEAF 5 #define CPUID5_ECX_EXTENSIONS_SUPPORTED 0x1 |