Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

Len Brown bfb53ccf 14796fca

+5
+1
arch/x86/include/asm/msr-index.h
··· 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
+4
drivers/idle/intel_idle.c
··· 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 */