Commit bfb53ccf1c734b1907df7189eef4c08489827951

Authored by Len Brown
1 parent 14796fca2b

intel_idle: disable Atom/Lincroft HW C-state auto-demotion

Just as we had to disable auto-demotion for NHM/WSM,
we need to do the same for Atom (Lincroft version).

In particular, auto-demotion will prevent Lincroft
from entering the S0i3 idle power saving state.

https://bugzilla.kernel.org/show_bug.cgi?id=25252

Signed-off-by: Len Brown <len.brown@intel.com>

Showing 2 changed files with 5 additions and 0 deletions Side-by-side Diff

arch/x86/include/asm/msr-index.h
... ... @@ -39,6 +39,7 @@
39 39 #define MSR_NHM_SNB_PKG_CST_CFG_CTL 0x000000e2
40 40 #define NHM_C3_AUTO_DEMOTE (1UL << 25)
41 41 #define NHM_C1_AUTO_DEMOTE (1UL << 26)
  42 +#define ATM_LNC_C6_AUTO_DEMOTE (1UL << 25)
42 43  
43 44 #define MSR_MTRRcap 0x000000fe
44 45 #define MSR_IA32_BBL_CR_CTL 0x00000119
drivers/idle/intel_idle.c
... ... @@ -345,8 +345,12 @@
345 345 break;
346 346  
347 347 case 0x1C: /* 28 - Atom Processor */
  348 + cpuidle_state_table = atom_cstates;
  349 + break;
  350 +
348 351 case 0x26: /* 38 - Lincroft Atom Processor */
349 352 cpuidle_state_table = atom_cstates;
  353 + auto_demotion_disable_flags = ATM_LNC_C6_AUTO_DEMOTE;
350 354 break;
351 355  
352 356 case 0x2A: /* SNB */